c++任意输入一串字符串,输出其中的不同字符及其个数。例如:输入abcdefgabc,输出为a->2,b->2,c->2,d->1,e->1,f->1,g->1。
时间: 2024-05-10 13:15:05 浏览: 43
C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析
可以通过哈希表来实现。遍历字符串,统计每个字符出现的次数,然后输出不同字符及其个数。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int count[256] = {0}; // 哈希表,用于统计每个字符出现的次数
printf("请输入字符串:");
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
count[str[i]]++;
}
printf("不同字符及其个数:\n");
for (int i = 0; i < 256; i++) {
if (count[i] > 0) {
printf("%c->%d\n", i, count[i]);
}
}
return 0;
}
```
在上面的代码中,我们使用了一个名为 `count` 的数组作为哈希表,数组下标为字符的 ASCII 码,数组元素的值为该字符出现的次数。遍历完字符串后,我们再遍历一次哈希表,输出统计结果。
阅读全文