使用c语言,编写程序,假设文章中有N行文字,每行有80个字符,分别统计大写英文字母,小写英文字母,数字字符,空格字符和其他字符的个数
时间: 2023-12-13 21:03:41 浏览: 98
好的,以下是使用C语言编写的程序,可以实现你提出的要求:
```c
#include <stdio.h>
int main() {
char input[80];
int upper = 0, lower = 0, digit = 0, space = 0, other = 0;
int i, j, n;
printf("请输入文章的行数N:");
scanf("%d", &n);
getchar(); // 读取换行符
for (i = 0; i < n; i++) {
printf("请输入第%d行文字:\n", i+1);
fgets(input, 80, stdin); // 读取一行输入
for (j = 0; j < 80; j++) {
if (input[j] >= 'A' && input[j] <= 'Z') {
upper++;
} else if (input[j] >= 'a' && input[j] <= 'z') {
lower++;
} else if (input[j] >= '0' && input[j] <= '9') {
digit++;
} else if (input[j] == ' ') {
space++;
} else {
other++;
}
}
}
printf("大写英文字母个数:%d\n", upper);
printf("小写英文字母个数:%d\n", lower);
printf("数字字符个数:%d\n", digit);
printf("空格字符个数:%d\n", space);
printf("其他字符个数:%d\n", other);
return 0;
}
```
程序的运行流程是这样的:首先要求用户输入文章的行数N,然后进入一个循环,每次循环读取一行输入,并对该行文字进行统计。统计的方法是遍历该行的每个字符,如果是大写英文字母则将大写字母计数器加1,如果是小写英文字母则将小写字母计数器加1,如果是数字字符则将数字字符计数器加1,如果是空格字符则将空格字符计数器加1,否则将其他字符计数器加1。最后输出各种字符的个数即可。
需要注意的地方是:
1. 使用`fgets`函数读取输入时,每行最多只能读取80个字符(包括换行符)。
2. 需要使用`getchar`函数读取输入后的换行符,否则下一次输入会读取到该换行符。
3. 输入中可能存在其他字符,如标点符号、中文字符等,需要将它们归为“其他字符”。
希望这个程序可以帮助到你。
阅读全文