华为机试c++字符串统计全占量
时间: 2023-09-21 18:01:40 浏览: 84
华为机试C题要求统计一个字符串中每个字符出现的次数,并输出结果。下面是一个实现思路:
1. 声明一个数组`count`,用于存放每个字符出现的次数。数组长度为128,由于ASCII码表中的字符有128个。
2. 初始化数组`count`的所有元素为0。
3. 遍历给定的字符串,对于每个字符,获取其ASCII码值,并将对应位置的计数器加1。
4. 输出结果。遍历数组`count`,输出不为0的字符及其出现次数。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[128] = {0}; // 用于存放字符出现次数的数组
// 输入字符串
printf("请输入一个字符串: ");
scanf("%s", str);
// 统计字符出现次数
int len = strlen(str);
for (int i = 0; i < len; i++) {
int ascii = (int)str[i]; // 获取字符的ASCII码值
count[ascii]++; // 对应计数器加1
}
// 输出结果
printf("每个字符的出现次数为: \n");
for (int i = 0; i < 128; i++) {
if (count[i] != 0) {
printf("%c: %d\n", (char)i, count[i]);
}
}
return 0;
}
```
以上就是统计字符串中每个字符出现次数的解答。该程序通过遍历字符串中的每个字符,利用ASCII码值作为数组下标进行统计,最后输出结果。
阅读全文