写一个算法统计在输入字符串中各个不同字符出现的频度并将结果存入文件中。(字符串中的合法字符为A-Z 这26个字母和0-9这10个数字)
时间: 2024-05-09 17:21:19 浏览: 136
统计一个字符串中每个字符出现的次数
1. 定义一个长度为36的数组freq,用于存储每个字符出现的频度,数组下标与字符的ASCII码对应;
2. 读取输入字符串,遍历字符串中的每个字符;
3. 判断字符是否为合法字符,如果不是则跳过该字符;
4. 将字符的ASCII码作为下标,对应的数组元素值加1;
5. 将freq数组中每个元素的值和对应的字符写入文件中。
伪代码如下:
```
// 定义freq数组
int freq[36] = {0}; // A-Z对应65-90,0-9对应48-57
// 读取输入字符串
string input_str = read_input_string();
// 遍历字符串中的每个字符
for (char c : input_str) {
// 判断字符是否为合法字符
if ((c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) {
// 将字符的ASCII码作为下标,对应的数组元素值加1
freq[c - '0']++;
}
}
// 将freq数组中每个元素的值和对应的字符写入文件中
ofstream outfile("output.txt");
for (int i = 0; i < 26; i++) {
outfile << (char)(i + 'A') << " " << freq[i + 65] << endl;
}
for (int i = 0; i < 10; i++) {
outfile << (char)(i + '0') << " " << freq[i + 48] << endl;
}
outfile.close();
```
阅读全文