21xrx.com
2024-12-22 22:24:22 Sunday
登录
文章检索 我的文章 写文章
C++:统计输入行的单词数量
2023-07-05 13:35:18 深夜i     --     --
C++ 统计 输入行 单词数量

C++是一种流行的编程语言,它非常适合对文本进行统计和处理。在本文中,我们将讨论如何使用C++编写一个程序,以统计输入行的单词数量。

在开始编写这个程序之前,我们需要理解单词是什么。单词通常是由字母或数字组成的字符序列,这些字符序列中间没有空格或其他分隔符。例如,"hello"和"123abc"都是单词,而"hello world"和"abc-def"则不是单词。

接下来,我们可以开始编写程序了。首先,我们需要从标准输入流(即键盘输入)中获取输入行,然后将其存储在一个字符串变量中。可以使用C++的getline函数来实现这一点,如下所示:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string line;

  getline(cin, line);

  // 这里可以对输入行进行处理

  return 0;

}

上述代码中,我们声明了一个名为line的字符串变量,并使用getline函数将键盘输入的内容存储在该变量中。此时,我们可以对line变量进行处理,以统计其中单词的数量。

要统计单词数量,我们可以使用以下算法:

1. 初始化计数器count为0;

2. 遍历字符串中的每个字符;

3. 如果该字符是字母或数字,则将标记flag设置为true;

4. 如果该字符是分隔符(空格、制表符等),并且flag为true,则将计数器count加1,并将flag设置为false;

5. 返回计数器count。

根据上述算法,我们可以编写以下代码:


#include <iostream>

#include <string>

using namespace std;

int countWords(string line) {

  int count = 0;

  bool flag = false;

  for (char c : line) {

    if (isalnum(c))

      flag = true;

     else if (flag) {

      count++;

      flag = false;

    }

  }

  if (flag) {

    count++;

  }

  return count;

}

int main() {

  string line;

  getline(cin, line);

  int numWords = countWords(line);

  cout << "Number of words: " << numWords << endl;

  return 0;

}

上述代码中,我们定义了一个名为countWords的函数,该函数接受一个字符串参数line,并返回其中单词的数量。函数内部使用一个计数器变量count和一个标记变量flag来统计单词数量。在主函数中,我们使用getline函数从键盘读取输入行,调用countWords函数统计其中单词的数量,并输出结果。

现在,我们可以编译并运行上述程序,并输入一些测试数据,例如:


This is a test sentence.

程序将输出:


Number of words: 5

这说明输入行中共有5个单词,与我们的预期结果相符。

总之,使用C++编写一个程序以统计输入行中的单词数量是非常简单的。我们可以使用getline函数从标准输入流中获取输入行,并使用简单的算法来统计其中单词的数量。希望这篇文章能够对你有所帮助!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复