首页 > 其他 > 详细

字符串复制

时间:2017-04-30 16:43:22      阅读:291      评论:0      收藏:0      [点我收藏+]

要求:编写一个函数,实现类似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;
}


字符串复制

原文:http://www.cnblogs.com/lxjshuju/p/6789720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!