我不明白 C 中的 while 条件
I don't understand this while condtition in C
任务是在 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]
的值。字符串终止符 '[=11=]'
的值为 0
。所以它会循环直到字符串结束。
添加行 s1[i] = s2[i];
以将 '[=11=]'
放在末尾。
根据定义,C 风格字符串是以 '[=11=]'
结尾的字符序列。如果你忘记把它放在最后,你可能会遇到麻烦。
任务是在 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]
的值。字符串终止符 '[=11=]'
的值为 0
。所以它会循环直到字符串结束。
添加行 s1[i] = s2[i];
以将 '[=11=]'
放在末尾。
根据定义,C 风格字符串是以 '[=11=]'
结尾的字符序列。如果你忘记把它放在最后,你可能会遇到麻烦。