字符串复制

来源:互联网 发布:关于室内设计的软件 编辑:程序博客网 时间:2024/05/16 04:37

要求:编写一个函数,实现类似strcpy的字符串复制函数。原型定义为 char * mystrcpy(char *dest, char *src)。功能是把src所指向的字符串复制到dest所指的数组中,返回dest指针。(提示:src和dest所指向的区域有可能重叠)。

简单版本:

char * mystrcpy(char *dest, char *src){char *p = dest;while(*src != '\0'){*dest++ = *src++;}return p;}
存储空间分析:



上述情况没有考虑内存区域重叠的问题,也没有对输入参数进行合法性检测。修改后的版本为:

char * mystrcpy(char *dest, char *src){char *d = dest;//输入参数备份char *s = src;int count = 0;assert(dest);//指针合法性检测assert(src);if(src == dest){return src;}count = strlen(src) + 1;if(count<=1){return 0;}if(dest < src || dest >= (src + count)){while(count--){*d++ = *s++;}}else{d = dest + count;s = src + count;while(count--){*d-- =*s--;}}return dest;}


5 0
原创粉丝点击