码迷,mamicode.com
首页 > 其他好文 > 详细

字符串复制

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

标签:问题   art   img   int   log   实现   size   重叠   sso   

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


字符串复制

标签:问题   art   img   int   log   实现   size   重叠   sso   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!