如何用C语言编写程序,以便接收用户通过键盘输入的一系列字符(直到遇到换行符为止),并分别计算其中英文字母、数字字符、空格和非字母数字空格字符的数量?提示:请勿使用getchar函数来获取输入。
时间: 2024-11-09 20:29:47 浏览: 39
在C语言中,你可以使用`stdio.h`库中的`scanf()`函数来逐个读取用户的输入,同时利用`isalpha()`、`isdigit()`等函数来判断字符的类别。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int letter_count = 0, digit_count = 0, space_count = 0, nonalnum_space_count = 0;
char input;
// 循环接收用户输入直到遇到换行符
while ((input = getchar()) != '\n') {
if (isalpha(input)) { // 判断是否为字母
letter_count++;
} else if (isdigit(input)) { // 判断是否为数字
digit_count++;
} else if (isspace(input)) { // 判断是否为空格
space_count++;
} else if (!ispunct(input) && !isspace(input)) { // 判断是否为非字母数字空格字符
nonalnum_space_count++;
}
}
printf("英文字母数量: %d\n", letter_count);
printf("数字字符数量: %d\n", digit_count);
printf("空格字符数量: %d\n", space_count);
printf("非字母数字空格字符数量: %d\n", nonalnum_space_count);
return 0;
}
```
这个程序会一直等待用户输入,每输入一个字符就会检查它的类型,并相应地更新计数器。当你按下回车键(换行符`\n`)时,循环结束。
阅读全文