21xrx.com
2024-12-22 23:27:45 Sunday
登录
文章检索 我的文章 写文章
C++ 统计英文单词个数:输入一行字符。
2023-06-29 17:37:51 深夜i     --     --
C++ 统计 英文单词 个数 输入

在C++编程中,经常需要对一段文字进行处理,其中一个较为常见的需求是统计一行英文文本中的单词个数。这个问题看似简单,但实际上需要一定的编程技巧才能解决。

首先,我们需要知道什么是英文单词。英文单词一般由字母组成,中间可能有连字符“-”,但不会出现其他特殊符号。因此,对于统计单词个数的问题,我们需要排除掉文字间的空格、标点符号等干扰因素,只保留由字母和连字符构成的“单词”。

接着,我们可以使用C++中的string类来存储输入的文本。对于string类,我们可以使用它内置的函数来实现字符串的拆分和统计。具体的做法是:

1. 使用string类的getline函数读取一行输入。

2. 遍历整个字符串,对于每个字符进行判断:

   a. 如果是字母或连字符,则将其加入当前单词的字符串中。

   b. 如果是空格或标点符号,则将当前单词字符串清空,并将单词计数器加1。

3. 如果一直到字符串末尾,都在构建一个单词,需要在循环结束后再进行一次单词计数。

下面是一个示例代码,展示了如何使用C++实现英文单词统计:


#include <iostream>

#include <string>

using namespace std;

int main() {

 string text;

 int word_count = 0; // 单词计数器

 string current_word = ""; // 当前读取的单词

 getline(cin, text);

 for (int i = 0; i < text.length(); i++) {

  char c = text[i];

  if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '-') {

   current_word += c;

  } else {

   if (current_word != "") { // 如果不是空单词,计数器加1

    word_count++;

    current_word = "";

   }

  }

 }

 if (current_word != "") {

  word_count++; // 处理最后一个单词

 }

 cout << "单词个数:" << word_count << endl;

 return 0;

}

以上是一个简单的C++示例,展示了如何统计输入文本中的英文单词个数。在实际应用中,我们还可以进一步优化算法的效率和稳定性,例如通过使用标准库函数来简化代码、考虑特殊情况等等。总之,这个问题是C++初学者入门的一个好题目,可以帮助大家熟悉基本的字符串操作和算法思路。

  
  

评论区

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