📅  最后修改于: 2023-12-03 14:40:00.067000             🧑  作者: Mango
本程序演示如何在C++中查找字符串中字符的出现频率。
首先定义一个字符串变量,用来保存待查找的字符串。
string str = "This is a test string.";
接下来定义一个长度为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']++;
}
}
最后,遍历整型数组,输出每个字母及其出现的次数。
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次。