首页 > 其他 > 详细

浅谈字符串处理函数的实现(一)

时间:2016-01-24 19:51:44      阅读:145      评论:0      收藏:0      [点我收藏+]

  C语言标准库中有许多处理字符串的库函数,例如strlen、strcpy、strcat、strcmp和strstr等等。这些库函数的实现使得我们平时处理字符串简单轻松了许多。那么这些库函数到底是怎样实现的呢?了解了其具体实现后,相信对于应用将更加得心应手,不会再出现参数调用出错,返回值不对等低级错误了。今天我先带大家了解了解其一,字符串拷贝函数strcpy。

strcpy函数的原型是:

char *strcpy(char *dst, const char *src);

其功能是实现字符串的复制,即

把从src地址开始且含有‘\0‘结束符的字符串复制到以dest开始的地址空间。

strcpy函数的实现:

char *mystrcpy(char *dst,const char *src)
{
	char *ret=dst;
	assert(dst);
	assert(src);
	while(*dst++=*src++)
	{
		;
	}
	return ret;
}

   首先,为什么要用const来修饰源字符串呢?我们知道const可以保证其修饰的变量受到保护,strcpy函数只是将源字符串拷贝到目的字符串中,所以源字符串我们是不能修改的。既然不能修改就用const将其保护起来。其次,一进入函数我们就对地址的有效性进行断言,如果是个空地址,直接就可以抛出一个错误,增加了程序的健壮性。最后,在返回值上我们使其返回char*,使函数能够支持链式表达式。

  看了strcpy函数的原型及其实现的说明,是不是加深了对其的理解,接下来我来给大家做一个调用库函数示例:

char str[20];
char *s="hello";
strcpy(str,s);
printf("%s\n",str);

  下篇带大家看看strcpy的升级版技术分享

浅谈字符串处理函数的实现(一)

原文:http://luminous.blog.51cto.com/10797288/1738014

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