用c++语言编写程序任意输入一串字符串,输出其中的不同字符及其个数。例如:输入abcdefgabc,输出为a->2,b->2,c->2,d->1,e->1,f->1,g->1。
时间: 2024-05-09 11:14:45 浏览: 140
好的,这是一个比较基础的字符串处理问题,可以使用数组来存储每个字符出现的次数。以下是使用 C 语言实现的程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int count[26] = {0}; // 存储每个字符出现的次数,因为只有小写字母,所以长度为 26
printf("请输入字符串(最大长度为 %d):", MAX_LEN);
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
int index = str[i] - 'a'; // 计算当前字符在数组中的下标
count[index]++;
}
for (int i = 0; i < 26; i++) {
if (count[i] > 0) {
printf("%c->%d,", i + 'a', count[i]); // 输出每个字符及其出现的次数
}
}
return 0;
}
```
在程序中,首先定义了一个长度为 `MAX_LEN` 的字符串 `str`,然后定义了一个长度为 26 的数组 `count`,用于存储每个字符出现的次数。接着,通过 `scanf` 函数读入一个字符串,用 `strlen` 函数获取字符串的长度,然后遍历每个字符,计算每个字符在数组中的下标,最后将对应的数组元素增加 1。最后,再次遍历数组,输出每个字符及其出现的次数。
阅读全文