zoukankan      html  css  js  c++  java
  • 算法----字符串拷贝

    功能要求:把src 所指由NULL 结束的字符串复制到dest 所指的数组中。
    分析:如果编写一个标准strcpy 函数的总分值为10,下面给出几个不同得分的答案:

    //得2 分
    void strcpy( char *strDest, char strSrc )
    {
    while( (
    strDest++ = * strSrc++) != '/0' );
    }

    //得4 分
    void strcpy( char *strDest, const char strSrc )
    {
    //将源字符串加const,表明其为输入参数,加2 分
    while( (
    strDest++ = * strSrc++) != '/0' );
    }

    //得7 分
    void strcpy(char *strDest, const char strSrc)
    {
    //对源地址和目的地址加非0 断言,加3 分
    assert( (strDest != NULL) && (strSrc != NULL) );
    while( (
    strDest++ = * strSrc++) != '/0' );
    }

    //得9 分
    //为了实现链式操作,将目的地址返回,加2 分!
    char * strcpy( char *strDest, const char *strSrc )
    {
    assert( (strDest != NULL) && (strSrc != NULL) );
    char address = strDest;
    while( (
    strDest++ = * strSrc++) != '/0' );
    return address;
    }

    //得10 分,基本上所有的情况,都考虑到了
    //如果有考虑到源目所指区域有重叠的情况,加1 分!
    char * strcpy( char *strDest, const char *strSrc )
    {
    if(strDest == strSrc) { return strDest; }
    assert( (strDest != NULL) && (strSrc != NULL) );
    char address = strDest;
    while( (
    strDest++ = * strSrc++) != '/0' );
    return address;
    }

  • 相关阅读:
    HDOJ:1051
    新sort的用法
    python课堂整理14---函数式编程
    python课堂整理13---函数的作用域及匿名函数
    python课堂整理12---递归
    python课堂整理11---函数即变量
    python课堂整理10---局部变量与全局变量
    python课堂整理9---函数1
    python课堂整理8---字符串格式化
    python课堂整理7---集合
  • 原文地址:https://www.cnblogs.com/nolonely/p/4750172.html
Copyright © 2011-2022 走看看