繁体   English   中英

在 C 的情况下,我不明白这一点

[英]I don't understand this while condtition in C

任务是在 C 中重现 function 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'值为0 所以它会循环到字符串的末尾。

线s1[i] = s2[i]; 添加以将'\0'放在末尾。

根据定义,C 风格的字符串是以'\0'结尾的字符序列。 如果你忘记把它放在最后,你可能会遇到麻烦。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM