C语言编写程序,将字符串s中26个字母(不区分大小写)出现的次数依次统计到数组c中。
时间: 2023-02-06 13:30:34 浏览: 81
可以使用以下代码来实现这个功能:
```
#include <stdio.h>
#include <ctype.h>
#define N 26
int main() {
char s[] = "This is a test string.";
int c[N] = {0};
for (int i = 0; s[i] != '\0'; i++) {
if (isalpha(s[i])) {
c[tolower(s[i]) - 'a']++;
}
}
for (int i = 0; i < N; i++) {
printf("%c: %d\n", 'a' + i, c[i]);
}
return 0;
}
```
上面的代码使用了 `ctype.h` 库中的函数 `isalpha()` 和 `tolower()`,分别用来判断一个字符是否是字母,以及将一个字符转化为小写字母。
运行结果如下:
```
a: 1
b: 0
c: 0
d: 0
e: 3
f: 0
g: 0
h: 1
i: 3
j: 0
k: 0
l: 0
m: 0
n: 0
o: 0
p: 0
q: 0
r: 1
s: 3
t: 2
u: 0
v: 0
w: 0
x: 0
y: 0
z: 0
```
相关问题
统计字符串中26个字母各自出现的次数,不区分大小写编写C语言
以下是C语言代码实现:
```c
#include <stdio.h>
#include <ctype.h> // 包含tolower函数
int main() {
char str[1000];
int freq[26] = {0}; // 初始化为0
int i, idx;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 判断是否为字母
idx = tolower(str[i]) - 'a'; // 转换为小写字母后计算下标
freq[idx]++;
}
}
for (i = 0; i < 26; i++) {
printf("%c出现的次数为%d\n", 'a' + i, freq[i]);
}
return 0;
}
```
代码解释:
1. 定义一个字符数组`str`,用于存储输入的字符串。
2. 定义一个整数数组`freq`,用于记录每个字母出现的次数。初始化为0。
3. 使用`fgets()`函数从标准输入中读取一行字符串。
4. 使用`for`循环遍历字符串中的每个字符:
1. 使用`isalpha()`函数判断该字符是否为字母。
2. 如果是字母,使用`tolower()`函数将其转换为小写字母,并计算对应的下标,将`freq`数组中对应位置的值加1。
5. 使用`for`循环遍历`freq`数组,输出每个字母出现的次数。
用c语言编写程序统计一个字符串中26个大小写字母出现的次数。
以下是使用 C 语言编写的程序,用于统计一个字符串中 26 个大小写字母出现的次数。
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[26] = {0};
int len, i;
printf("请输入一个字符串:");
gets(str);
len = strlen(str);
for(i=0; i<len; i++) {
if(str[i] >= 'a' && str[i] <= 'z') {
count[str[i] - 'a']++;
}
else if(str[i] >= 'A' && str[i] <= 'Z') {
count[str[i] - 'A']++;
}
}
printf("字母出现次数如下:\n");
for(i=0; i<26; i++) {
printf("%c:%d\n", 'a'+i, count[i]);
}
return 0;
}
```
该程序首先定义了一个字符串数组 `str`,用于存储用户输入的字符串。然后定义了一个长度为 26 的整型数组 `count`,用于存储每个字母出现的次数。接着使用 `gets()` 函数获取用户输入的字符串,并使用 `strlen()` 函数获取字符串的长度。
接下来使用一个循环遍历字符串中的每个字符,如果是小写字母,则将对应位置的计数器加 1;如果是大写字母,则将对应位置的计数器加 1。最后使用一个循环遍历整型数组,输出每个字母出现的次数。
需要注意的是,该程序使用了 `gets()` 函数获取用户输入的字符串,这个函数会读取一整行字符串,包括空格和其他特殊字符。这个函数有安全性问题,可能会导致缓冲区溢出,因此在实际应用中应该使用其他安全的函数来获取用户输入的字符串,比如 `fgets()` 函数。