• string 之 strcat 函数


    更多干货请移步我的公众号「aCloudDeveloper」,专注技术干货分享,期待与你相遇。

    Author: bakari  Date: 2012/8/9

    继上篇。。。。。

    下面是我写的代码与源码作的一些比较,均已严格测试通过,分别以“string 之”系列述之。

    下面包括strcat , strncat函数

     1 /*******************************************************
     2  *  strcat and strncat
     3  *  Note:  while(*desStr) desStr++;  OK
     4  *         while(*desStr ++);        ERROR!
     5  *         *desStr = '\0' 可有可无,不过最好加上
     6  *******************************************************/
     7 char * Mystrcat(char *desStr, const char *srcStr){
     8     assert(NULL != desStr && NULL != srcStr);
     9     char *address = desStr;
    10 
    11     while(*desStr) desStr++;             //(1)OK! 
    12     //while(*desStr ++);                 //(2)ERROR! 后缀++ 运算符较 间接操作符 * 优先级高,在跳出循环时指向了'\0'之后
    13     while(*desStr ++ = *srcStr ++);
    14     // *desStr = '\0';                  //?为何可有可无(道理同上)
    15 
    16     return address;
    17 }
    18 
    19 char * Mystrncat(char *desStr, const char *srcStr, size_t nCount){
    20     assert(NULL != desStr && NULL != srcStr && nCount <= strlen(srcStr));
    21     char *address = desStr;
    22 
    23     while( *desStr )
    24         *desStr ++;
    25     while( nCount-- )
    26         *desStr ++ = *srcStr ++;
    27     *desStr = '\0';
    28 
    29     return address;
    30 }

    注意上面的注释,避免少走一些弯路。

    stay hungry stay foolish ----jobs 希望多多烧香!
  • 相关阅读:
    js对象写法
    IE6双边距bug及其解决办法
    图片轮播
    盒子水平和垂直同时居中方法
    选项卡切换
    针对IE6兼容png
    html5兼容
    sublime快捷键总结
    七种设计原则
    Git基本命令
  • 原文地址:https://www.cnblogs.com/bakari/p/2630809.html
Copyright © 2020-2023  润新知