【发布时间】:2021-12-22 16:49:20
【问题描述】:
我一直在尝试创建一个从文件中读取文本并将其存储在字符串中的程序。我将字符串提供给计算字符串中每个单词的函数。
但是它唯一准确的假设用户在行尾留下一些空格并且不创建空行......不是一个很好的单词计数器。
- 创建空行会导致字数计数错误增加。
我不确定我的主要问题是使用布尔值执行此操作还是检查空格和“\n”字符。
bool countingLetters = false;
int wordCount = 0;
for (int i = 0; i < text.length(); i++)
{
if (text[i] == ' ' && countingLetters == true)
{
countingLetters = false;
wordCount++;
}
if (text[i] != ' ' && countingLetters == false)
{
countingLetters = true;
}
if (text[i] == '\n' && countingLetters == true)
{
countingLetters = false;
wordCount++;
}
}
【问题讨论】:
-
可以在末尾加个空格,比如
text += ' ' -
@justANewbie 啊哈我知道这是一件非常痛苦的事情,我想念谢谢。可悲的是,空白行被视为单词的另一个问题仍然存在。
-
考虑当找到换行符(不是一个)时,将执行多少个(以及哪些)
if语句主体。 -
@1201ProgramAlarm 天哪,谢谢,我需要更好地阅读 if 语句或少用它们
-
@GarlicBread 好吧,你只需要在看到空行时减少
wordCount。我知道的快速破解 ;)