字符串复制

2015-08-12 19:28:09来源:作者:人点击

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

简单版本:

 

char * mystrcpy(char *dest, char *src){	char *p = dest;	while(*src != ''){		*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;}


 

微信扫一扫

第七城市微信公众平台