c语言编程,输入一个正整数n(n<=5),再输入n行字符(每个字符串少于80个字符),分别统计其中的大写英文字母、小写英字母、数字、空格和其他字符的个数。
时间: 2024-12-29 10:36:32 浏览: 12
在C语言中,你可以使用`ctype.h`库来处理字符分类,并结合数组和循环结构来完成这个任务。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LINE_LENGTH 80
void count_chars(char input[], int *upper, int *lower, int *digit, int *space, int *other) {
while (*input != '\0') { // 遍历输入的字符串
if (isalpha(*input)) { // 如果是字母
if (isupper(*input))
(*upper)++;
else
(*lower)++;
} else if (isdigit(*input)) { // 如果是数字
(*digit)++;
} else if (*input == ' ') { // 如果是空格
(*space)++;
} else { // 其他字符
(*other)++;
}
input++; // 移动到下一个字符
}
}
int main() {
int n;
printf("请输入一个正整数n(1 <= n <= 5): ");
scanf("%d", &n);
if (n > 5) {
printf("错误: n超过了限制!\n");
return 1;
}
int upper = 0, lower = 0, digit = 0, space = 0, other = 0;
for (int i = 0; i < n; i++) {
char line[MAX_LINE_LENGTH];
printf("请输入第%d行字符: ", i + 1);
fgets(line, sizeof(line), stdin);
// 去除末尾换行符
line[strlen(line) - 1] = '\0';
count_chars(line, &upper, &lower, &digit, &space, &other);
}
printf("\n统计结果:\n大写字母: %d\n小写字母: %d\n数字: %d\n空格: %d\n其他字符: %d\n",
upper, lower, digit, space, other);
return 0;
}
```
在这个程序中,我们首先读取用户输入的行数n,然后在循环里读取每一行输入并计数各种类型的字符。注意,`fgets()`用于读取包含换行符的完整行,而`count_chars()`函数会检查每个字符的类别。
阅读全文