首页 > 其他 > 详细

关于对strcpy函数的编写与优化

时间:2015-12-21 00:23:10      阅读:296      评论:0      收藏:0      [点我收藏+]
//最初级的版本!
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void my_strcpy(char *dest, const char *src)
{
	while (*src != ‘\0‘)
	{
		*dest = *src;
		dest++;
		src++;
	}
	*dest = *src;
}
int main()
{
	char arr[10];
	const char *p = "abcdef";
	my_strcpy(arr, p);
	printf("%s\n", arr);
	system("pause");
	return 0;
}
//  缺点:1.没有判断dest,src指向的位置是否为空
          2.程序冗长,逻辑不简练
          3.dest做程序结束指向最后,没有什么意义!
          4.无返回值,不利于链式访问函数。
         
    
//满分版
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char* my_strcpy(char *dest, const char *src)
{
	assert(dest); //断言,只在debug环境下才能起作用,对程序员调试很有用哦
	assert(src);
	char* ret = NULL;
	ret = dest;
	while (*ret++ = *src++)
	{
		;
	}
	return dest;//设返回值有利于链式访问:例  strlen(strcpy(dest,stc));

}
int main()
{
	char arr[10];
	const char *p = "abcdef";
	char* ret = NULL;
	ret=my_strcpy(arr, p);
	printf("%s\n", ret);
	system("pause");
	return 0;
}


关于对strcpy函数的编写与优化

原文:http://10918952.blog.51cto.com/10908952/1726621

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