C++输入一行大写英文字符(最多30个),以#号结尾,按照ASCII码的值,从小到大,输出每种字符出现的次数。
时间: 2023-12-21 19:06:58 浏览: 75
以下是C++的代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int count[128] = {0}; // 用一个数组记录每个字符出现的次数,ASCII码共有128个字符
char str[31]; // 输入的字符串最大长度为30,加上结尾的#号,总长度为31
cin.getline(str, 31, '#'); // 输入一行字符,以#号结尾
int len = strlen(str);
for (int i = 0; i < len; i++) {
count[(int)str[i]]++; // 统计每个字符出现的次数
}
for (int i = 0; i < 128; i++) {
if (count[i] > 0) { // 如果该字符出现过,则输出它的ASCII码和出现次数
cout << (char)i << " " << count[i] << endl;
}
}
return 0;
}
```
这个程序利用了一个长度为128的数组 `count` 来记录每个字符出现的次数,数组下标对应字符的 ASCII 码。输入的字符串通过 `cin.getline` 函数读入,读到 # 号为止。接下来循环遍历字符串中的每个字符,将其对应的 `count` 数组元素加一。最后再循环一遍 `count` 数组,输出出现次数不为零的字符及其出现次数。
阅读全文