📜  C++程序查找字符串中字符的频率(1)

📅  最后修改于: 2023-12-03 14:40:00.067000             🧑  作者: Mango

C++程序查找字符串中字符的频率

本程序演示如何在C++中查找字符串中字符的出现频率。

程序实现步骤
  1. 首先定义一个字符串变量,用来保存待查找的字符串。

     string str = "This is a test string.";
    
  2. 接下来定义一个长度为26的整型数组,用来保存26个小写字母在字符串中出现的次数。然后遍历字符串中的每个字符,将字符转换为小写字母后,通过ASCII码计算其在数组中的下标,将对应下标的元素加1。

     int freq[26] = {0};
     for(int i = 0; i < str.length(); i++){
         if(isalpha(str[i])){
             freq[tolower(str[i]) - 'a']++;
         }
     }
    
  3. 最后,遍历整型数组,输出每个字母及其出现的次数。

     for(int i = 0; i < 26; i++){
         if(freq[i] > 0){
             cout << char('a' + i) << ": " << freq[i] << endl;
         }
     }
    
完整代码

以下是完整的C++程序代码:

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

int main()
{
    // 定义待查找的字符串
    string str = "This is a test string.";

    // 定义并初始化数组
    int freq[26] = {0};

    // 统计字符出现频率
    for(int i = 0; i < str.length(); i++){
        if(isalpha(str[i])){
            freq[tolower(str[i]) - 'a']++;
        }
    }

    // 输出字符出现频率
    for(int i = 0; i < 26; i++){
        if(freq[i] > 0){
            cout << char('a' + i) << ": " << freq[i] << endl;
        }
    }

    return 0;
}
运行结果

程序输出如下结果:

a: 1
e: 1
g: 1
h: 1
i: 3
n: 1
r: 1
s: 3
t: 5

以上结果表示,在待查找的字符串中,字母a、e、g、h、i、n、r、s、t分别出现了1次、1次、1次、1次、3次、1次、1次、3次和5次。