stpncpy实现疑问
//函数返回的是数组尾部吧,因dst++,这样返回有什么意义,而且感觉数组最后没有以\0结束,是不是我理解错了
char *
stpncpy(char * __restrict dst, const char * __restrict src, size_t n)
{
for (; n--; dst++, src++) {
if (!(*dst = *src)) {
char *ret = dst;
while (n--)
*++dst = '\0';
return (ret);
}
}
return (dst);
}
char *
stpncpy(char * __restrict dst, const char * __restrict src, size_t n)
{
for (; n--; dst++, src++) {
if (!(*dst = *src)) {//dst空间足够大的话,此条件成立
char *ret = dst;
while (n--)
*++dst = '\0';//dst加尾
return (ret);
}
}
return (dst);
}