输入一行字符,以#结尾,分别统计出其中的英文字母、空格、数字和其他字符的个数(不算#号)。提示:ch = getchar(); //输入字符测试输入: I am a student;
时间: 2024-10-24 21:14:31 浏览: 25
首先,我们可以编写一个简单的程序来实现这个功能。这个程序会逐个读取字符,判断其是否为英文字母、空格、数字或其他字符,并累加相应的计数。这里我们假设字符集只包含ASCII字符。
```c
#include <stdio.h>
#include <ctype.h> // 需要头文件来处理字符分类
int main() {
int alpha_count = 0; // 英文字母计数
int space_count = 0; // 空格计数
int digit_count = 0; // 数字计数
int other_count = 0; // 其他字符计数
while ((ch = getchar()) != '\n') { // 循环直到遇到换行符
if (isalpha(ch)) { // 如果是字母
alpha_count++;
} else if (isspace(ch)) { // 如果是空格
space_count++;
} else if (isdigit(ch)) { // 如果是数字
digit_count++;
} else { // 否则,不是字母、空格或数字
other_count++;
}
}
printf("英文字母: %d\n", alpha_count);
printf("空格: %d\n", space_count);
printf("数字: %d\n", digit_count);
printf("其他字符: %d\n", other_count);
return 0;
}
```
当你运行此程序并输入"I am a student",它将分别打印出各字符类型的计数。注意,在实际应用中,`getchar()`函数通常用于控制台输入,但在上述代码示例中,由于未提供输入流,所以无法直接运行并看到结果。你需要将其与实际的输入流(如键盘输入或文件读取)结合使用。
阅读全文