编写程序从键盘输入字符串,按字符出现频率的降序打印字母。
时间: 2023-05-26 19:07:42 浏览: 99
```
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
int main()
{
std::string str;
std::getline(std::cin, str);
std::map<char, int> freq_map;
for (char ch : str)
{
if (std::isalpha(ch)) // 只统计字母
{
freq_map[ch]++;
}
}
std::vector<std::pair<char, int>> freq_vec(freq_map.begin(), freq_map.end());
std::sort(freq_vec.begin(), freq_vec.end(), [](const auto& lhs, const auto& rhs) {
return lhs.second > rhs.second; // 按频率降序排序
});
for (const auto& pair : freq_vec)
{
std::cout << pair.first << " : " << pair.second << std::endl;
}
return 0;
}
```
阅读全文