任务是在C中重现函数strcpy的行为。我发现了这个代码:
char *ft_strcpy(char *s1, char *s2)
{
int i;
i = 0;
while (s2[i])
{
s1[i] = s2[i];
i++;
}
s1[i] = s2[i];
return (s1);
}
我不了解while的情况。为什么我可以把";s2[1]";作为条件?在这种情况下,谴责说了什么?
它检查s2[i]
的值。字符串终止符' '
的值为0
。因此它将循环直到字符串结束。
添加行s1[i] = s2[i];
以将' '
置于末尾。
根据定义,C样式字符串是以' '
结尾的一系列字符。如果你忘了把它放在最后,你可能会遇到麻烦。