21xrx.com
2024-11-05 14:36:46 Tuesday
登录
文章检索 我的文章 写文章
用C++统计字符串中的单词个数
2023-06-22 06:01:41 深夜i     --     --
C++ 字符串 单词 统计 个数

在编程语言C++中,统计字符串中的单词数是一种常见的编程任务。在本文中,我们将介绍如何编写一个简单的C++程序来完成这个任务。

首先,我们需要定义一个字符串变量来存储输入的字符串。我们可以使用“getline”函数从标准输入流中读取一行字符串并存储在变量中。


string input;

getline(cin, input);

接下来,我们需要遍历字符串中的每个字符并检查它是否属于单词。我们可以使用一个循环来实现这个过程。对于每个字符,我们需要检查它是否属于单词的字符类。如果是,则将一个计数器变量添加1。这里我们定义单词的字符类仅包括字母和数字,使用isdigit和isalpha判断。


int wordCount = 0;

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

 if (isalnum(input[i])) {

  wordCount++;

  while (isalnum(input[i])) {

   i++;

  }

 }

}

我们还需要处理一些特殊情况,例如句子开头和结尾的空格,或连字符(-)连接的单词。我们可以使用一些条件语句来解决这些问题。


int wordCount = 0;

bool inWord = false;

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

 if (isalnum(input[i])) {

  if (!inWord) {

   wordCount++;

   inWord = true;

  }

  while (isalnum(input[i]) || input[i] == '-') {

   i++;

  }

 }

 else

  inWord = false;

 

}

最后,我们需要输出单词计数。我们可以使用cout函数将结果打印到标准输出流中。


cout << "Word Count: " << wordCount << endl;

在完整的程序中,我们需要包含头文件iostream和string。这里的完整程序:


#include <iostream>

#include <string>

using namespace std;

int main() {

 string input;

 getline(cin, input);

 int wordCount = 0;

 bool inWord = false;

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

  if (isalnum(input[i])) {

   if (!inWord) {

    wordCount++;

    inWord = true;

   }

   while (isalnum(input[i]) || input[i] == '-') {

    i++;

   }

  }

  else

   inWord = false;

  

 }

 cout << "Word Count: " << wordCount << endl;

 return 0;

}

以上就是使用C++统计字符串中的单词个数的方法和具体实现代码。如果你对字符流和字符串操作有更深入的了解,那么也可以尝试更高级的方法挑战一下这个问题。

  
  

评论区

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