用C++编写程序,从标准输入中读入一段英文,统计其中小写字母出现次数,并以柱状图的形式显示其出现次数。
时间: 2025-01-01 10:37:54 浏览: 11
在C++中,你可以使用`<iostream>`库来读取用户输入,`<string>`库处理字符串,`<cctype>`库用于字符分类,包括区分大小写。首先,你需要遍历字符串并统计每个小写字母的出现次数,然后可以借助一些第三方库如`concurrent_hash_map`或自定义数据结构来存储并绘制柱状图。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
#include <cctype>
#include <unordered_map>
std::unordered_map<char, int> countLowerCaseChars(const std::string& input) {
std::unordered_map<char, int> charCounts;
for (char c : input) {
if (islower(c)) { // 检查是否为小写字母
charCounts[c]++;
}
}
return charCounts;
}
void printBarChart(const std::unordered_map<char, int>& counts) {
for (const auto& pair : counts) {
std::cout << pair.first << ": ";
for (int i = 0; i < pair.second; ++i) {
std::cout << "*";
}
std::cout << "\n";
}
}
int main() {
std::string input;
std::cout << "Enter a string: ";
getline(std::cin, input);
std::unordered_map<char, int> counts = countLowerCaseChars(input);
printBarChart(counts);
return 0;
}
```
在这个示例里,`countLowerCaseChars`函数会统计输入字符串中小写字母的数量,然后`printBarChart`函数会打印出每种小写字母及其出现次数的柱状图。
注意,对于更复杂的柱状图显示,可能需要引入专门的数据可视化库,如`matplotlibcpp`或者直接使用图形界面库,这超出了基础C++的范围,需要额外的学习和安装。
阅读全文