标签:
(我们不妨先模拟实现一下strcat函数,然后再对照一下string.h库函数中strcat函数代码的实现,与大师肩并肩.)
strcat函数功能:将两个字符串连接起来,最终返回连接后字符串的首地址.
strcat函数原型:char *strcat(char *dest,const char *src);
我们清楚地了解了strcat函数功能和原型之后,就很容易分析出算法...
第一步:将dest指向的内容循环遍历至’\0’的部分.
第二步:将src指向的内容循环拷贝给dest,包括src后面的’\0’.
//模拟实现strcat函数 char *my_strcat1(char *dest,const char *src){ char * ret = dest; //对接受到的两个指针进行断言 assert(dest); assert(src); //将dest遍历至\0 while(*dest){ dest++; } //将src内容复制在dest之后 while(*src){ *dest++ = *src++; } //在dest后面追加\0 *dest = ’\0’; return ret; }
/* *本代码由高小调原创,版权归高小调博客所有 *作者:高小调 *日期:2016-8-7 *代码功能:模拟实现strcat函数 *集成开发环境:Microsoft Visual Studio 2010 */ #include<stdio.h> #include<stdlib.h> #include<assert.h> //模拟实现strcat char *my_strcat1(char *dest,const char *src){ char * ret = dest; //对接受到的两个指针进行断言 assert(dest); assert(src); //将dest遍历至\0 while(*dest){ dest++; } //将src内容复制在dest之后 while(*src){ *dest++ = *src++; } //在dest后面追加\0 *dest = ’\0’; return ret; } //库函数中实现方法 char *my_strcat2(char *dest,const char *src){ char * cp = dest; //将dest遍历至\0 while(*cp){ cp++; } //将src内容复制在dest之后 while(*cp++=*src++){ ; } return dest; } int main(){ char str1[20] = "Hello "; char str2[] ="Gxd Blog!"; char *ret = my_strcat1(str1,str2); printf("%s\n",ret); system("pause"); return 0; }
小调祝你一切安好.
本文由高小调博客原创!
原文地址:http://gaoxiaodiao.com/p/21.html
如欲转载,请注明出处!
标签: