如何用c语言统计字符串中每个字符的个数
时间: 2023-12-24 22:55:13 浏览: 295
可以使用一个数组来存储每个字符出现的次数,遍历字符串中的每个字符,将对应的数组元素加1即可。
具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[256] = {0}; // 用一个大小为256的数组来存储每个字符的出现次数
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len; i++) {
count[str[i]]++;
}
for (int i = 0; i < 256; i++) {
if (count[i] > 0) {
printf("字符 '%c' 出现了 %d 次\n", i, count[i]);
}
}
return 0;
}
```
这段代码中,我们使用了一个大小为256的数组 `count` 来存储每个字符的出现次数。在遍历字符串中的每个字符时,我们将对应的数组元素加1。最后,我们再遍历一遍数组,输出每个字符出现的次数。
需要注意的是,这段代码只能统计 ASCII 码表中的字符,即字符的取值范围为 0~255。如果要统计 Unicode 字符集中的字符,需要使用更大的数组来存储每个字符的出现次数。
相关问题
C语言统计字符串中每个字符的个数
在C语言中,你可以通过遍历字符串并使用数组或哈希表来统计每个字符的个数。这里是一个简单的示例,我们将使用一个字符计数数组:
```c
#include <stdio.h>
#include <string.h>
void count_chars(char *str) {
int char_count[256] = {0}; // 初始化一个大小为256的数组,因为ASCII码有256个字符
while (*str) { // 遍历字符串直到遇到'\0'
char_count[*str]++;
str++; // 移动指针到下一个字符
}
for (int i = 0; i < 256; i++) {
if (char_count[i]) {
printf("字符 '%c' 出现了 %d 次\n", i, char_count[i]);
}
}
}
int main() {
char input[] = "Hello, World!";
count_chars(input);
return 0;
}
```
这个程序会统计输入字符串中每个ASCII字符的数量,并打印出来。
C语言统计字符串中每个字符的个数并存储在一个变量中
在C语言中,你可以使用数组或结构体来统计字符串中每个字符的个数。这里我们提供一个基本的示例,使用数组来存储每个字符及其对应的计数:
```c
#include <stdio.h>
#include <string.h>
#define CHAR_COUNT 256 // 假设ASCII字符集有256个字符
int char_counts[CHAR_COUNT] = {0}; // 初始化所有字符计数为0
void count_chars(char *str) {
int len = strlen(str); // 获取字符串长度
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') // 只考虑小写字母示例
char_counts[str[i] - 'a']++; // ASCII码减去'a'得到小写字母的索引并加一
else if (str[i] >= 'A' && str[i] <= 'Z')
char_counts[str[i] - 'A']++; // 大写字母同样处理
// 其他字符可以根据需求添加相应的计数逻辑
}
}
int main() {
char input[] = "Hello, World!";
count_chars(input);
for (int i = 0; i < CHAR_COUNT; i++) {
if (char_counts[i] > 0)
printf("字符 '%c' 出现了 %d 次。\n", i + 'a', char_counts[i]); // 对小写字母打印结果
}
return 0;
}
```
阅读全文