Menu
CoddyTech

回顾:单词频率

本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 29 课,共 56 课。

challenge icon

挑战

简单

使用 std::map 编写一个程序,统计一段文本中每个单词出现的频率。你的程序会记录每个不同单词出现的次数,然后报告某个指定单词的出现频率。

将提供以下输入:

  • 一个整数 n,表示文本中的单词数
  • 接下来是 n 个字符串,表示文本中的单词
  • 一个字符串,表示要检查频率的目标单词

你的程序应该:

  1. 创建一个名为 wordCount 的 std::map<std::string, int>
  2. 读取单词数
  3. 对于每个单词,读取它,并使用方括号运算符和递增操作符更新它在字典中的计数
  4. 读取要检查的目标单词
  5. 按照下面显示的格式打印目标单词的出现频率

使用以下确切的输出格式:

The word "[target_word]" appears [frequency] times

如果目标单词不存在于字典中,使用方括号运算符访问它会自动创建一个计数为 0 的条目,因此你可以直接打印频率,无需先检查该单词是否存在。读取每个单词时,使用 wordCount[word]++ 来递增计数。对于新单词,这会创建计数为 1 的新条目;对于已经出现过的单词,则会递增已有计数。

亲手试试

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // 读取单词的数量
    int n;
    cin >> n;
    
    // 创建映射表,存储每个单词出现的次数
    map<string, int> wordCount;
    
    // TODO:在这里编写你的代码
    // 读取 n 个单词,并在映射表中更新它们出现的次数
    // 然后读取目标单词,输出它出现的次数
    
    return 0;
}

逻辑与流程中的所有课

自己练习: C++ 在线编译器