C语言输入句子提取单词
时间: 2024-05-12 15:21:16 浏览: 77
c语言-单词统计(链表实现)
要提取单词,需要先了解单词的定义。在英语中,单词是由字母组成的、表示一个特定含义的字符串。因此,提取单词就是要从输入的句子中找出由字母组成的字符串。
以下是一个示例代码,可以输入一个英文句子,然后提取出其中的单词并打印出来:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char sentence[1000]; // 存储输入的句子
char word[100]; // 存储提取出来的单词
int sentence_len, i, j, word_start;
printf("请输入一个英文句子:\n");
fgets(sentence, 1000, stdin); // 从标准输入读入句子
sentence_len = strlen(sentence);
i = 0;
while (i < sentence_len) {
// 找到单词的起始位置
while (i < sentence_len && !isalpha(sentence[i])) {
i++;
}
if (i == sentence_len) {
break;
}
// 找到单词的结束位置
j = i;
while (j < sentence_len && isalpha(sentence[j])) {
j++;
}
// 将单词复制到 word 数组中并打印出来
word_start = i;
strncpy(word, sentence + word_start, j - word_start);
word[j - word_start] = '\0';
printf("%s\n", word);
i = j;
}
return 0;
}
```
该代码的大致思路是:
1. 先输入一个英文句子,存储在字符数组 `sentence` 中。
2. 定义另一个字符数组 `word`,用来存储提取出来的单词。
3. 定义变量 `sentence_len` 表示句子的长度,`i` 和 `j` 分别表示遍历句子和查找单词的位置,`word_start` 表示单词在句子中的起始位置。
4. 在一个循环中,不断查找单词的起始位置和结束位置,然后将单词复制到 `word` 数组中并打印出来。
5. 循环结束后程序退出。
在代码中,使用了 C 语言中的一些库函数:
- `fgets` 用来从标准输入读入句子。
- `isalpha` 用来判断一个字符是否为字母。
- `strlen` 用来获取一个字符串的长度。
- `strncpy` 用来将一个字符串复制到另一个字符串中。
阅读全文