c语言 统计数组中数字和英文字母
时间: 2023-11-26 07:39:45 浏览: 50
的个数应该怎么做?
你可以使用ASCII码来判断每个字符是数字还是英文字母,其中数字的ASCII码范围是48~57,英文字母的范围是65~90和97~122。可以使用循环遍历数组中每个元素,判断其ASCII码是否在数字或英文字母的范围内,如果是就相应地增加数字或英文字母的个数。具体代码如下:
```c
#include <stdio.h>
int main()
{
char arr[100];
int i, digits = 0, letters = 0;
printf("请输入一个字符串:");
gets(arr);
for(i=0; arr[i]!='\0'; i++)
{
if((arr[i]>='0' && arr[i]<='9'))
digits++;
else if((arr[i]>='A' && arr[i]<='Z') || (arr[i]>='a' && arr[i]<='z'))
letters++;
}
printf("数字个数为:%d\n", digits);
printf("字母个数为:%d\n", letters);
return 0;
}
```
相关问题
c语言输入一行字符,统计英文字母,数字和其他字符
下面是一个简单的 C 语言程序,可以输入一行字符,然后统计其中的英文字母、数字和其他字符:
```c
#include <stdio.h>
int main() {
char line[100];
int i, letters = 0, digits = 0, others = 0;
printf("请输入一行字符:");
fgets(line, sizeof(line), stdin);
for (i = 0; line[i] != '\0'; i++) {
if ((line[i] >= 'a' && line[i] <= 'z') || (line[i] >= 'A' && line[i] <= 'Z')) {
letters++;
} else if (line[i] >= '0' && line[i] <= '9') {
digits++;
} else {
others++;
}
}
printf("字母个数:%d\n", letters);
printf("数字个数:%d\n", digits);
printf("其他字符个数:%d\n", others);
return 0;
}
```
程序中使用了一个字符数组 `line` 来存储输入的一行字符,使用 `fgets` 函数从标准输入中读取一行字符。接着使用一个循环遍历字符数组中的每个字符,如果是英文字母,则 `letters` 计数器加一;如果是数字,则 `digits` 计数器加一;否则,`others` 计数器加一。最后输出结果。
用c语言输入一行字符统计其中每个英文字母的个数存放到一维数组中
以下是一个示例程序,可以实现输入一行字符统计其中每个英文字母的个数,并将结果存放到一维数组中:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LENGTH 1000 // 输入字符串的最大长度
#define NUM_LETTERS 26 // 英文字母的数量
int main() {
char str[MAX_LENGTH];
int counts[NUM_LETTERS] = {0}; // 初始值全部为0
printf("请输入一行字符:\n");
fgets(str, MAX_LENGTH, stdin); // 读取一行字符
// 统计每个英文字母的个数
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 判断是否为英文字母
int index = tolower(str[i]) - 'a'; // 转换为小写字母后计算下标
counts[index]++;
}
}
// 输出结果
for (int i = 0; i < NUM_LETTERS; i++) {
if (counts[i] > 0) {
printf("%c: %d\n", 'a' + i, counts[i]);
}
}
return 0;
}
```
程序中使用了几个关键函数:
- `fgets()`:读取一行字符,包括换行符。
- `isalpha()`:判断一个字符是否为英文字母。
- `tolower()`:将大写字母转换为小写字母。
- 数组下标计算:将小写字母转换为对应的数字下标,例如 `a` 对应下标 `0`,`b` 对应下标 `1`,以此类推。
需要注意的是,程序中只统计了小写字母的个数,如果需要统计大写字母的个数,可以在计算下标时先使用 `tolower()` 函数转换为小写字母。