输入一个字符串,对其中的字母按照不区分大小写的出现次数输出一个星号组成的直方图c++
时间: 2024-12-18 20:14:51 浏览: 18
在C++中,你可以使用`std::map`来存储每个字符及其出现次数,然后遍历这个映射,根据字符的频率生成星号组成的数据。这里是一个简单的示例:
```cpp
#include <iostream>
#include <map>
#include <cctype> // 使用tolower()函数转换字符到小写
void generateHistogram(const std::string& input) {
std::map<char, int> charCount;
for (char c : input) {
// 转换为小写并统计出现次数
c = tolower(c);
if (isalpha(c)) { // 只统计字母
charCount[c]++;
}
}
// 输出直方图
for (const auto& pair : charCount) {
std::cout << pair.first << ": ";
for (int i = 0; i < pair.second; ++i) {
std::cout << "*";
}
std::cout << "\n";
}
}
int main() {
std::string str;
std::cout << "请输入一个字符串: ";
getline(std::cin, str); // 防止因输入换行符导致的问题
generateHistogram(str);
return 0;
}
```
在这个程序中,用户会被提示输入一个字符串,然后程序会计算其中字母(忽略大小写)的出现次数,并打印出每个字母对应的星号直方图。
阅读全文