如何使用C语言编写一个程序,该程序能接收用户输入的英文句子,并统计并输出其中单词的数量?
时间: 2024-12-08 16:20:45 浏览: 28
在C语言中,要编写一个程序来统计用户输入英文句子中的单词数量,可以采用以下几个步骤:
1. **包含头文件**:首先,我们需要#include<stdio.h>用于标准输入输出操作,以及<string.h>库来处理字符串。
```c
#include <stdio.h>
#include <string.h>
```
2. **接收用户输入**:使用`scanf`函数获取用户输入的句子。
```c
char input[1000]; // 创建足够大的数组存储输入的句子
printf("请输入一个英文句子:");
fgets(input, sizeof(input), stdin); // fgets防止换行符影响计数
input[strcspn(input, "\n")] = '\0'; // 清除末尾的换行符
```
3. **分割字符串成单词**:使用`strtok`函数将句子分解成单词数组,这里假设单词间由空格分隔。
```c
char *word;
word = strtok(input, " "); // 分割,返回第一个单词
int word_count = 1; // 初始化单词计数
while (word != NULL) { // 当有更多单词时继续
word = strtok(NULL, " ");
++word_count;
}
```
4. **输出结果**:最后,打印出单词总数。
```c
printf("输入的英文句子中有%d个单词。\n", word_count);
```
完整的C语言程序示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[1000];
printf("请输入一个英文句子:");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0';
char *word;
word = strtok(input, " ");
int word_count = 1;
while (word != NULL) {
word = strtok(NULL, " ");
++word_count;
}
printf("输入的英文句子中有%d个单词。\n", word_count);
return 0;
}
阅读全文