我試圖指揮strncat功能。我理解它的大部分內容,可以用差異的方式來寫,但我無法弄清楚如何編寫更長版本的while (!(*dest++ = *src++))
。C if((!(* dest ++ = * srC++))return ret是什麼意思?
char *_strncat(char *dest, char *src, int n)
{
char *ret = dest;
while (*dest) /* same as: while (dest[0] !- '\0') */
{
dest++; /* w. each loop, array is shifted left until it's empty */
}
while (n != 0)
{
if (!(*dest++ = *src++)) /* <=========here */
return ret;
n--;
}
*dest = 0;
return (ret);
}
有人可以展示和解釋如何擴展該行,以便我可以指導它並瞭解它是如何工作的?謝謝!
= or ==?我認爲你在那裏有一個錯誤? –
@TonyTannous不,這是故意的。該代碼正在尋找空終止符 –
空的反向爲真 –