计算一行中的单词数量

时间:2013-09-16 23:08:32

标签: c++

这就是我想要做的事情,这几乎不是我所做的整个计划的一小部分。这部分是计算我输入的单词的数量。

string s;
getline(cin, s);

for (unsigned int i = 0; i < s.length(); i++)
{
    if (s[i] == ' ' || s[i] == '.')
    {
        numWords++;
    }
}

如果有人在最​​后输入一个句号正确的行,这显然有效。我想不出如何让它识别出行尾字符,但是他们没有放一段时间。

4 个答案:

答案 0 :(得分:0)

为什么不在1上启动numWords计数器并仅计算空格?

答案 1 :(得分:0)

您只需计算行中“”的数量,然后将其添加到1。就是这样。

答案 2 :(得分:0)

  bool previousSpace = false;
  for (unsigned int i = 0; i < s.length(); i++)
  {
    if (isspace(s[i]) || s[i] == '.')
    {
        if (previousSpace == false)
        {
          numWords++;
          previousSpace = true;
        }
    }
    else
    {
      previousSpace = false;
    }
  }
  cout << numWords + (previousSpace ? 0 : 1) << endl;

这考虑了多个连续的空格。这里的关键是使用isspace函数。

答案 3 :(得分:-1)

这可能和你追求的一样吗? Count the number of times each word occurs in a file或此已经重复Word count program in C++ duplicate