如何读取特定单词的字符串并计算发现的时间

How to read a string for a specific word and count the times it was found

本文关键字:字符串 字符 串并 计算 时间 发现 单词 何读取 读取      更新时间:2023-10-16

我当前正在尝试编写一个程序来检查txt文件以查找特定的单词,游骑兵并对其进行计数。一旦计算一切,我就需要将其打印出流浪者的总数和弦的总数。我不知道该怎么做。

我几乎失败了C ,确实需要此帮助。这就是我到目前为止提出的:

#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;

int main() {
  string ranger[50]; 
    ifstream rangerin("Ranger.txt");

    if ( !rangerin ) {
        cout << "Invalid Filen";
        return EXIT_FAILURE;
    }
    string message;
    while ( getline(rangerin, message) ) {
    }
}

使用以下策略。

  1. 循环中的单词读取文件。
  2. 将您阅读的每个单词与您要寻找的单词进行比较。
  3. 如果它们相同,请增加计数。
  4. 完成阅读后,退出循环。
  5. 打印计数。
int main()
{
   int count = 0;
   std::ifstream rangerin("Ranger.txt");
   if ( !rangerin ) {
      cout << "Invalid Filen";
      return EXIT_FAILURE;
   }
   std::string word;
   while ( rangerin >> word  )
   {
      // This needs to be modified if case insensitive comparison
      // is expected.
      if ( word == "ranger" )
      {
         ++count;
      }
   }
   std::cout << "Number of times 'ranger' was found: " << count << std::endl;
   return 0;
}

编辑

上述方法的麻烦是,如果您的文件中有ranger,,则不会计算。这意味着比较必须进行一些完善。

写一个函数 isWordRanger并在该功能中隐藏详细信息。

bool isWordRanger(string const& word)
{
    // Add additional refined checks as needed.
    return ( (word == "ranger") ||
             (word == "ragner,") ||
             (word == "ranger.") );
}

更改main要使用:

      if ( isWordRanger(word) )
      {
         ++count;
      }