我不明白 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=]' 结尾的字符序列。如果你忘记把它放在最后,你可能会遇到麻烦。