首页 > 其他 > 详细

浅谈字符串处理函数(二)

时间:2016-01-24 19:50:34      阅读:111      评论:0      收藏:0      [点我收藏+]

上篇我们介绍了strcpy函数,但是strcpy函数是一个存在潜在危险性的函数。试想一下,如果我们事先给的目的字符串数组太小,而需要拷贝的源字符串长度大于目的字符串长度,此时这个函数会怎么办呢?所以,接下来我们介绍一个它的升级版strncpy函数。

strncpy 是 C语言的库函数之一,把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回dest。

strncpy的原型:

char*strncpy(char*dest,char*src,size_tn);

其功能是:

复制字符串src中的内容到字符串dest中,复制多少由size_tn的值决定。如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。如果n<src的长度,只是将sec的前n个字符复制到dest的前n个字符,不自动添加‘\0‘,也就是结果dest不包括‘\0‘,需要再手动添加一个‘\0‘。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。

实现如下:

char *mystrncpy(char *dst,const char *src,size_t n)
{
	char *ret=dst;
	assert(dst);
	assert(src);
	while(n && (*dst++=*src++))
	{
		n--;
	}
	if(n)
	{
		while(--n)
		{
		   *dst++=‘\0‘;
		}
	}
	return ret;
}


浅谈字符串处理函数(二)

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

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