c语言 - <String.h> 我的 strncpy 实现对吗?


char  *strncpy(char *dest, char *src, unsigned int n)
{
unsigned int a;
a = 0;
while (src[a] && a < n)
{
dest[a] = src[a];
a++;
}
while (a < n)//if src not bigger than n should I put '' at the end of dest ?
{
dest[a] = '';
a++;
}
dest[a] = '';
return (dest);
}

你好堆栈溢出

我正在寻找我的错误,我知道当 n> strlen(dest( 时,它确实在真正的 strncpy 上中止,我想知道为什么它是错误的? 感谢您的帮助

你不需要连续附加'\0',如果你想用零填充dest的其余内存,你可以在分配内存时使用calloc()

char  *strnncpy(char *dest, char *src, unsigned int n)
{
unsigned int a;
a = 0;
while ( src[a] && a < n)
{
dest[a] = src[a];
a++;
}
dest[a] = '';
return (dest);
}

相关内容

  • 没有找到相关文章

最新更新