淡泊明志 宁静致远
分类: C/C++
2006-11-23 14:31:54
【C语言库函数源代码】
【本程序在Dev C++ 4.9.9.2 下编译通过】
/*
Copies count characters from the source
string to the destination.
If count is less than the length of source,NO
NULL CHARACTER is put
onto the end of the copied string.If count is
greater than the length
of sources, dest is padded with null characters
to length count.
把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。
如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束;
如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
*/
char * my_strncpy( char *
dest, const char
* source, int count )
{
char *p = dest;
while (count
&& (*p++ = *source++)) count--;
while(count--)
*p++ = '\0';
return(dest);
}
int main()
{
char a[20];
puts(my_strncpy(a,"ammana_babi",15));
system("pause");
return 0;
}
zhu_xianfeng2008-12-01 22:55:29
不错!感谢分享! 但是似乎没有对传入的count进行有效的判断 while (count && (*p++ = *source++)) count--; 譬如 count < 0