c语言编程从键盘上输入20个字符,编程统计并输出其中英文字母(不区分大小写)、数字字符(0~9)和空格的个数及所占的百分比
时间: 2024-11-09 14:22:32 浏览: 41
国家计算机考试二级C语言南开大学100题
在C语言中,可以使用`ctype.h`库中的函数来检查每个字符是否属于特定类别,然后逐一统计并计算它们的数量和占比。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char input[21];
int alpha_count = 0, digit_count = 0, space_count = 0;
// 输入20个字符
fgets(input, 21, stdin);
// 转换为小写以便统一处理字母
for (int i = 0; i < strlen(input); i++) {
input[i] = tolower(input[i]); // 区分大小写的字母计数
if (isalpha(input[i])) { // 检查是否为字母
alpha_count++;
} else if (isdigit(input[i])) { // 检查是否为数字
digit_count++;
} else if (isspace(input[i])) { // 检查是否为空格
space_count++;
}
}
// 计算总字符数
int total_chars = alpha_count + digit_count + space_count;
// 输出统计结果
printf("Number of English letters: %d (%d%%)\n", alpha_count, (double)alpha_count / total_chars * 100);
printf("Number of digits: %d (%d%%)\n", digit_count, (double)digit_count / total_chars * 100);
printf("Number of spaces: %d (%d%%)\n", space_count, (double)space_count / total_chars * 100);
return 0;
}
```
在这个程序中,我们首先读取用户输入的20个字符,然后遍历这个字符串,使用`isalpha()`、`isdigit()`和`isspace()`函数分别检查字符是否为字母、数字或空格,并增加对应的计数器。最后,我们根据总数计算各部分的百分比并输出。
阅读全文