输入一行字符,统计其中有多少个单词,单词之间是用空格分隔开C语言
时间: 2023-12-26 16:26:52 浏览: 87
C语言程序设计-输入一行字符,分别统计出英文大小写字母、空格、数字和其他字符的个数
5星 · 资源好评率100%
以下是C语言统计一行字符中单词个数的代码:
```c
#include <stdio.h>
#include <ctype.h>
#define IN 1
#define OUT 0
int main() {
int c, state = OUT, count = 0;
printf("请输入一行字符,单词之间用一个空格分隔开\n");
while ((c = getchar()) != EOF) {
if (isspace(c)) {
state = OUT;
} else if (state == OUT) {
state = IN;
count++;
}
}
printf("该行字符有%d个单词\n", count);
return 0;
}
```
代码解释:
- `#include <stdio.h>`和`#include <ctype.h>`是C语言的头文件,分别包含了输入输出和字符处理函数。
- `#define IN 1`和`#define OUT 0`是宏定义,用于表示单词的状态,IN表示在单词内,OUT表示在单词外。
- `int c, state = OUT, count = 0;`定义了三个变量,`c`表示当前读入的字符,`state`表示当前所处的状态,`count`表示单词的个数。
- `while ((c = getchar()) != EOF)`是一个循环,每次读入一个字符,直到读到文件结尾。
- `if (isspace(c))`判断当前字符是否为空格,如果是,将状态设置为OUT。
- `else if (state == OUT)`判断当前状态是否为OUT,如果是,将状态设置为IN,并将单词个数加1。
- `printf("该行字符有%d个单词\n", count);`输出单词的个数。
阅读全文