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

字符串复制

时间:2015-08-12 09:05:08      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:strcpy

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

字符串复制

标签:strcpy

原文地址:http://blog.csdn.net/iot_hept/article/details/47438373

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