用C语言编写程序,对于一个句子字符串(不超过100个字符),所有字符中不含任何标点,单词之间以若干空格分隔,统计其中的单词个数。(提示:找每个单词结束位置) 程序输入若干句子,依次输出单词个数。 输入格式: 一行一个句子,输入可能多行。 输出格式: 输出单词个数,一个结果一行。不要用函数
时间: 2023-06-14 13:02:45 浏览: 492
以下是用C语言编写的程序,可以统计输入的每个句子中的单词个数,每个句子的结果独立输出一行。
```c
#include <stdio.h>
#define MAX_LEN 100 // 最大句子长度
int main() {
char sentence[MAX_LEN]; // 存储输入的句子
int word_count = 0; // 统计单词个数
char cur_char; // 当前字符
int i, j; // 循环计数器
// 读入多行句子,直到遇到文件结束符
while (fgets(sentence, MAX_LEN, stdin)) {
word_count = 0; // 每个句子的单词个数需要重新计算
// 遍历句子中的每个字符
for (i = 0; sentence[i] != '\0'; i++) {
cur_char = sentence[i];
// 如果当前字符是空格,则说明前面有一个单词结束了
if (cur_char == ' ') {
word_count++; // 单词个数加1
}
// 如果当前字符是换行符,则说明句子结束了
if (cur_char == '\n') {
// 如果最后一个字符不是空格,则说明还有一个单词没有计算
if (sentence[i - 1] != ' ') {
word_count++;
}
break; // 跳出循环,进入下一个句子的处理
}
}
printf("%d\n", word_count); // 输出单词个数
}
return 0;
}
```
该程序使用了 `fgets` 函数来读入多行句子,每次读入一行,并存储在 `sentence` 数组中。然后遍历 `sentence` 数组中的每个字符,如果遇到空格,则说明前面有一个单词结束了,单词个数加1。如果遇到换行符,则说明句子结束了,此时需要判断最后一个字符是否是空格,如果不是,则说明还有一个单词没有计算,需要将单词个数加1。最后输出单词个数即可。
阅读全文