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

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

时间:2016-01-24 19:52:13      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:字符串   c语言   

上篇我们介绍了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;
}


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

标签:字符串   c语言   

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

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