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

时间:2015-05-05 05:00:34

标签: c++

我目前正在尝试编写一个程序来检查txt文件以查找特定的单词,游侠并对其进行计数。 一旦计算好所有内容,我需要打印出游侠总数和字符串总数。我不知道如何做到这一点。

我几乎失败了c ++,真的需要这个帮助。这是我到目前为止所提出的:

WHERE

1 个答案:

答案 0 :(得分:0)

使用以下策略。

  1. 循环读取文件。
  2. 将您阅读的每个单词与您要查找的单词进行比较。
  3. 如果相同,请递增计数。
  4. 阅读完毕后,退出循环。
  5. 打印计数。
  6. int main()
    {
       int count = 0;
       std::ifstream rangerin("Ranger.txt");
    
       if ( !rangerin ) {
          cout << "Invalid File\n";
          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;
          }