有一篇文章,共有三行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格、以及其它字符的个数。 程序的运行示例如下: 请输入第0行: helloworld 请输入第1行: 12345gogogo 请输入第2行: end bye bye. helloworld 12345gogogo end bye bye. 大写字母数:0 小写字母数:25 数字个数 :5 空格个数 :2 其它字符 :1 ***输入提示信息***:"\n请输入第%d行:\n" ***输入数据格式***:使用gets() ***输出数据格式***:"%s\n" "大写字母数:%d\n" "小写字母数:%d\n" "数字个数 :%d\n" "空格个数 :%d\n" "其它字符 :%d\n"
时间: 2023-12-14 10:39:00 浏览: 57
以下是对应的代码实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int upper = 0, lower = 0, digit = 0, space = 0, other = 0;
char line[80];
for (int i = 0; i < 3; i++) {
printf("\n请输入第%d行:\n", i);
gets(line);
for (int j = 0; j < 80 && line[j] != '\0'; j++) {
if (isupper(line[j])) {
upper++;
} else if (islower(line[j])) {
lower++;
} else if (isdigit(line[j])) {
digit++;
} else if (isspace(line[j])) {
space++;
} else {
other++;
}
}
}
printf("\n大写字母数:%d\n小写字母数:%d\n数字个数 :%d\n空格个数 :%d\n其它字符 :%d\n", upper, lower, digit, space, other);
return 0;
}
```
注意,这里使用 `gets()` 函数来读取输入的字符串,需要注意该函数存在安全漏洞,容易受到缓冲区溢出攻击,实际使用时应该使用更为安全的函数替代。另外,输入的字符串中可能包含多余的空格,需要注意去除这些空格对结果的影响。
阅读全文