gpt4 book ai didi

c - 为什么我的 wc 实现给出了错误的字数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:52:12 25 4
gpt4 key购买 nike

这是一个小代码片段。

 while((c = fgetc(fp)) != -1)
{
cCount++; // character count
if(c == '\n') lCount++; // line count
else
{
if(c == ' ' && prevC != ' ') wCount++; // word count
}
prevC = c; // previous character equals current character. Think of it as memory.
}

现在,当我使用包含上述片段代码的文件运行 wc(按原样)时,我得到 48 个单词,但是当我对相同的输入数据使用我的程序时,我得到 59 个单词.

如何像wc一样计算字数?

最佳答案

您将任何不是空格的内容都视为有效单词。这意味着换行符后跟一个空格是一个单词,并且由于您的输入(即您的代码片段)是缩进的,所以您会得到一堆额外的单词。

你应该使用 isspace检查空格而不是将字符与 ' ' 进行比较:

while((c = fgetc(fp)) != EOF)
{
cCount++;
if (c == '\n')
lCount++;
if (isspace(c) && !isspace(prevC))
wCount++;
prevC = c;
}

关于c - 为什么我的 wc 实现给出了错误的字数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47076576/

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