统计字母次数

10 分钟

要统计每个字母出现几次,就准备 26 个计数盒(一个数组)。把字母减去 'a' 当作盒子的编号:'a' 减出来是 0,'b' 是 1……这样每个字母都对应到自己的盒子。

#include <iostream>
#include <string>
using namespace std;
int main() {
    string s = "abca";
    int box[26] = {0};
    for (int i = 0; i < s.length(); i++)
        box[s[i] - 'a']++;
    cout << box['a' - 'a'] << endl;  // a 出现 2 次
    return 0;
}

'c' - 'a' 等于 2,就放进第 2 个盒子。要注意两点:盒子一定要用 {0} 清零,不然里面是乱七八糟的初始值;这里假设字符串全是小写,如果混了大写要另外处理。

小纸条

字母 c 减字母 a 等于几?该放进第几个盒子?

登录 后可看答案

统计字母次数 · C++ 入门 · op599 课程