您的位置:首页 > 其它

字符串复制

2015-08-12 07:47 429 查看
要求:编写一个函数,实现类似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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: