C语言函数实现计算字符串每个字符出现的次数
时间: 2023-11-28 09:04:20 浏览: 38
可以使用数组来记录每个字符出现的次数,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void count_chars(char* str) {
int counts[128] = {0}; // 初始化为0
int len = strlen(str);
for(int i = 0; i < len; i++) {
counts[(int)str[i]]++; // 计数
}
for(int i = 0; i < 128; i++) {
if(counts[i] != 0) {
printf("%c: %d\n", i, counts[i]); // 输出结果
}
}
}
int main() {
char str[] = "hello, world!";
count_chars(str);
return 0;
}
```
运行结果:
```
: 2
!: 1
,: 1
-: 1
!: 1
d: 1
e: 1
h: 1
l: 3
o: 2
r: 1
w: 1
```
注意,这里使用了 ASCII 码表,因此数组大小为 128。如果要支持更多字符集,需要相应地扩大数组大小。
相关问题
计算字符串每个字符次数c语言
可以使用一个数组来记录每个字符出现的次数,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN];
int count[256] = {0}; // 初始化每个字符出现次数为0
printf("输入字符串:");
fgets(str, MAX_LEN, stdin);
int len = strlen(str);
for (int i = 0; i < len; i++) {
count[(int)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 码值,初始化为0。
输入字符串时使用 `fgets` 函数,因为它可以避免缓冲区溢出的问题。然后遍历字符串中的每个字符,将其在 `count` 数组中对应的元素加1。
最后,遍历一遍 `count` 数组,输出每个字符及其出现次数。注意,只有出现次数大于0的字符才需要输出。
C语言输入一个字符串统计各个字符出现次数
以下是C语言代码示例:
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN], freq[256] = {0};
int len, i;
printf("Enter a string: ");
fgets(str, MAX_LEN, stdin);
len = strlen(str);
for (i = 0; i < len; i++) {
freq[str[i]]++;
}
printf("Character frequency:\n");
for (i = 0; i < 256; i++) {
if (freq[i] != 0) {
printf("%c: %d\n", i, freq[i]);
}
}
return 0;
}
```
这段代码首先定义了一个字符串 `str` 和一个长度为 256 的数组 `freq`,用于存储每个字符出现的次数。
然后通过 `fgets` 函数从标准输入中读取字符串,并计算字符串长度。
接下来通过循环遍历字符串中的每个字符,将其在 `freq` 数组中对应的位置上加一。
最后再次循环遍历 `freq` 数组,输出每个字符出现的次数。