数组,编写程序,统计一个字符串中26个大小写字母出现的次数
时间: 2023-12-06 19:44:24 浏览: 41
下面是一个 Python 代码示例:
```python
string = "Hello, World!"
count = [0] * 26
# 统计每个字母出现的次数
for s in string:
if s.isalpha():
index = ord(s.lower()) - ord('a')
count[index] += 1
# 输出每个字母出现的次数
for i in range(26):
print(chr(ord('a') + i) + ": " + str(count[i]))
```
解释:
首先定义一个字符串 `string` 和一个长度为 26 的数组 `count`,用于统计每个字母出现的次数。
接着使用一个循环遍历字符串中的每个字符,判断是否为字母,如果是,则根据字母的大小写将其转换成数组下标,并将对应的计数器加 1。
最后再使用一个循环输出每个字母出现的次数,其中 `chr()` 函数用于将数字转换成对应的 ASCII 字符。
相关问题
用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()` 函数。
统计字符串中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`数组,输出每个字母出现的次数。