gpt4 book ai didi

c - The C Programming Language 示例 1.9 的难点

转载 作者:行者123 更新时间:2023-12-04 13:05:23 29 4
gpt4 key购买 nike

我正在努力完成The C Programming Language第一章的练习,虽然我理解大部分所说和显示的内容,但有一个例子我不明白明白了。

在 1.9 中,有一个函数显示返回行的长度,同时将作为参数传递的 char 数组设置为内容。

int get_line(char s[], int lim)
{
int c, i, l;

for (i = 0, l = 0; (c = getchar()) != EOF && c != '\n'; ++i) {
if (i < lim - 1)
s[l++] = c;
}
if (c == '\n')
if (l < lim - 1)
s[l++] = c;
s[l] = '\0';

return l;
}

我不明白的是为什么我们需要这个:if (c == '\n') {...}。这不能在for循环中组合吗?我们在哪里明确检查 c 不等于 '\n'?我无法理解为什么这需要成为外部条件。

任何灯棚都会有所帮助!谢谢!

最佳答案

如果 c 等于 EOFc 等于 ,则退出 for 循环\n '。因此,在 for 循环之后,如果您想知道 c 的值是多少,则必须进行测试。

关于c - The C Programming Language 示例 1.9 的难点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69778696/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com