描述 通信的基本问题就是在一点重新准确地或近似地再现另一点所选择的消息。假设消息是由一行字符组成,请分别统计出其中英文字母、空格、数字和其他字符的个数。 输入 一行字符。以@字符作为输入结束标志。但是@不列入数目累计。 输出 英文字母、空格、数字和其他字符的个数 用c语言
时间: 2024-10-11 14:09:12 浏览: 11
在C语言中,你可以使用`stdio.h`库来处理输入,并利用`ctype.h`库来进行字符分类。下面是一个简单的程序结构,用于统计输入字符串中各种字符的数量:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char input[100];
int alpha = 0, space = 0, digit = 0, other = 0;
int i = 0;
while (scanf("%c", &input[i]) == 1 && input[i] != '@') {
if (isalpha(input[i])) { // 判断是否为字母
alpha++;
} else if (isspace(input[i])) { // 判断是否为空格
space++;
} else if (isdigit(input[i])) { // 判断是否为数字
digit++;
} else { // 其他字符(包括标点符号、特殊字符)
other++;
}
i++;
}
printf("英文字母: %d\n", alpha);
printf("空格: %d\n", space);
printf("数字: %d\n", digit);
printf("其他字符: %d\n", other);
return 0;
}
```
这个程序通过循环读取用户输入的每个字符,然后使用`isalpha()`、`isspace()`和`isdigit()`函数判断字符类别。当遇到'@'字符时,跳出循环并输出结果。注意,这个程序会把大写字母和小写字母都当作英文字母对待。