输入一行字符,按字母,数字和其他字符分成三类,分别统计各类字符的数目,数字,其他字符个数,相邻数字之间用一个空格区分,输出末尾没有空格。用while((c=getchar())!='\n')语句
时间: 2024-11-20 11:44:54 浏览: 15
当你需要按照题目要求处理输入的一行字符,可以编写如下的C语言程序:
```c
#include <stdio.h>
#include <ctype.h> // 包含用于检查字符类型的头文件
int main() {
int digit_count = 0; // 数字字符计数器
int alpha_count = 0; // 字母字符计数器
int other_count = 0; // 其他字符(包括非字母和非数字)计数器
char c;
while ((c = getchar()) != '\n') { // 循环读取字符直到遇到换行符
if (isdigit(c)) { // 如果是数字字符
printf("%d ", digit_count); // 输出当前数字字符计数并加一
digit_count = 1; // 重置计数器
} else if (isalpha(c)) { // 如果是字母字符
alpha_count++;
} else { // 其他字符
other_count++;
}
}
// 当循环结束后,打印剩余的数字、字母和其它字符计数
if (digit_count > 0) {
printf("%d", digit_count);
}
if (alpha_count > 0) {
printf("%d", alpha_count);
}
if (other_count > 0) {
printf("%d", other_count);
}
return 0;
}
```
这个程序会读取一行输入,然后统计其中的数字、字母以及其他字符的数量,并在每个类别之后添加一个空格(如果存在)。注意,在最后一个数字计数之前不需要额外的空格,因为最后可能会有连续的数字。
阅读全文