有一行字符串最长不超过80个字符,以回车作为输入结束。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。 使用C语言完成代码
时间: 2024-05-04 08:19:13 浏览: 14
可以使用C语言中的字符数组以及循环结构来解决这个问题。具体实现如下:
```c
#include <stdio.h>
int main() {
char str[81]; // 定义字符数组,最多存储80个字符
int i, upper = 0, lower = 0, digit = 0, space = 0, other = 0;
printf("请输入一行字符串(最多80个字符):\n");
fgets(str, 81, stdin); // 从标准输入中读取字符串
for (i = 0; str[i] != '\0' && str[i] != '\n'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
upper++;
} else if (str[i] >= 'a' && str[i] <= 'z') {
lower++;
} else if (str[i] >= '0' && str[i] <= '9') {
digit++;
} else if (str[i] == ' ') {
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;
}
```
使用 `fgets()` 函数可以从标准输入中读取一行字符串,而不是使用 `scanf()` 函数,因为 `scanf()` 函数在读取字符串时会遇到空格或者其他特殊字符时就停止读取,而 `fgets()` 函数会读取整个字符串,包括空格和其他特殊字符。
接下来使用循环结构遍历字符串中的每个字符,对每个字符进行判断,以统计大写字母、小写字母、数字、空格以及其他字符的个数。最后输出统计结果即可。