21xrx.com
2024-11-05 14:48:42 Tuesday
登录
文章检索 我的文章 写文章
C++统计英文单词数量
2023-07-13 01:29:35 深夜i     --     --
C++ 统计 英文单词 数量
// 判断字符是否是单词字符

 return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');

C++是一门常用的编程语言,它可以用来开发各种类型的应用程序。今天,我们将介绍如何使用C++编写一个程序来统计英文单词数量。

首先,我们需要知道如何读取文本文件。在C++中,可以使用文件流(fstream)来读取文件。下面是一个读取文件的示例代码:


#include <fstream>

#include <iostream>

using namespace std;

int main() {

 ifstream input("myfile.txt"); // 打开文件

 if (!input) // 判断文件是否能够打开

  cout << "文件无法打开!" << endl;

  return 1;

 

 string word;

 int count = 0;

 while (input >> word) { // 逐个读取单词

  count++;

 }

 cout << "文件中共有 " << count << " 个单词。" << endl;

 input.close(); // 关闭文件

 return 0;

}

在上面的示例代码中,我们使用了文件流(ifstream)来打开名为myfile.txt的文本文件。我们还声明了一个字符串类型的变量word和一个整数类型的变量count,用于存储单词和单词数量。在while循环中,我们使用“>>”运算符逐个读取文件中的单词,并递增count计数器。最后,我们输出单词数量,并关闭文件流。

现在,我们已经知道了如何读取文件和统计单词数量。但是,如果我们想要精确统计单词数量,就需要排除一些不是单词的字符,例如标点符号和空格。下面是一个改进的示例代码:


#include <fstream>

#include <iostream>

#include <string>

using namespace std;

bool is_word(char c) { // 判断字符是否是单词字符

 return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');

}

int main() {

 ifstream input("myfile.txt"); // 打开文件

 if (!input) // 判断文件是否能够打开

  cout << "文件无法打开!" << endl;

  return 1;

 

 string word;

 int count = 0;

 while (input >> word) { // 逐个读取单词

  for (int i = 0; i < word.length(); i++) { // 逐个判断字符

   char c = word[i];

   if (!is_word(c)) { // 排除不是单词的字符

    word.erase(i, 1); // 删除字符

    i--; // 继续判断

   } else {

    if (c >= 'A' && c <= 'Z') { // 将大写字母转换为小写字母

     word[i] = c + 32;

    }

   }

  }

  if (!word.empty()) { // 统计单词数量

   count++;

  }

 }

 cout << "文件中共有 " << count << " 个单词。" << endl;

 input.close(); // 关闭文件

 return 0;

}

在上面的示例代码中,我们添加了一个名为is_word的辅助函数,用于判断一个字符是否是单词字符。在while循环中,我们使用for循环逐个判断单词中的字符,如果不是单词字符,则使用字符串的erase方法删除该字符,并将循环变量i减1,继续判断下一个字符。同时,我们还将大写字母转换为小写字母。最后,我们通过判断单词是否为空来统计单词数量。

通过上面的示例代码,我们可以轻松使用C++统计英文单词数量。当然,这只是一个基础的示例,你可以根据自己的需求进行改进和扩展。

  
  

评论区

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