有一行字符,分别统计出该行字符中大写字母、小写字母、数字字符、空格和其它字符的个数。 输入 测试数据有多组,每组单独占一行,包含若干字符,但不超过100个。 输出 对于每组测试数据,分别输出大写字母、小写字母、数字字符、空格和其它字符的个数,每组输出单独占一行,数据之间用一个空格分隔。
时间: 2023-07-10 19:19:32 浏览: 108
你可以使用如下的代码实现该功能:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
while (fgets(str, sizeof(str), stdin)) {
int upper = 0, lower = 0, digit = 0, space = 0, other = 0;
for (int i = 0; str[i]; i++) {
if (isupper(str[i])) {
upper++;
} else if (islower(str[i])) {
lower++;
} else if (isdigit(str[i])) {
digit++;
} else if (isspace(str[i])) {
space++;
} else {
other++;
}
}
printf("%d %d %d %d %d\n", upper, lower, digit, space, other);
}
return 0;
}
```
这个程序使用 `fgets` 函数读取一行字符串,然后遍历字符串中的每个字符,使用 `isupper`、`islower`、`isdigit`、`isspace` 判断字符的类型,并分别计数。最后将计数结果输出即可。注意,这里使用 `fgets` 代替 `gets`,以避免缓冲区溢出的问题。
阅读全文