char * my_strcpy(char * dest, const char * src)strncpy()
{
assert(dest);
assert(src);
char * temp = dest;
while (*dest++ = *src++)
{
;
}
return temp;
}
char * my_strncpy(char * dest, const char * src,int count)
{
assert(dest);
assert(src);
char * temp = dest;
while (count--&&(*dest++ = *src++))
{
;
}
if(count>0)
{
while (count--)
{
*dest++ = '\0';
}
}
return temp;
}
3 安全性
在安全性方面,显然strncpy要比strcpy安全得多,strcpy无法控制拷贝的长度,不小心就会出现dest的大小无法容纳src的情况,就会出现越界的问题,程序就会崩溃。而strncpy就控制了拷贝的字符数避免了这类问题,但是要注意的是dest依然要注意要有足够的空间存放src,而且src 和 dest 所指的内存区域不能重叠,”,注意在 使用时应该注意dest的空间应该足够放下src。char *strcpy(char *dest,const char *src),