用C 语言写程序:输入一个英文句子,输出长度最长的单词。不可调用库函数
时间: 2024-04-30 21:18:30 浏览: 85
可以使用循环遍历英文句子中的每个单词,记录下长度最长的那个单词。
具体实现如下:
```c
#include <stdio.h>
int main() {
char sentence[100]; // 定义输入的英文句子
printf("请输入一个英文句子:");
scanf("%[^\n]", sentence); // 读入整个句子,包括空格和标点符号
int max_len = 0; // 记录最长单词的长度
char max_word[20]; // 记录最长单词
int len = 0; // 记录当前单词的长度
char word[20]; // 记录当前单词
int i = 0;
while (1) {
char c = sentence[i];
if (c == ' ' || c == '\0') { // 如果遇到空格或者句子结尾
if (len > max_len) { // 如果当前单词比最长单词长
max_len = len; // 更新最长单词长度
for (int j = 0; j < len; j++) {
max_word[j] = word[j]; // 复制最长单词
}
max_word[len] = '\0'; // 字符串结尾
}
len = 0; // 清空当前单词长度
} else {
word[len] = c; // 将字符加入当前单词
len++; // 更新当前单词长度
}
if (c == '\0') { // 如果到达句子结尾,退出循环
break;
}
i++; // 继续遍历下一个字符
}
printf("长度最长的单词是:%s\n", max_word);
return 0;
}
```
上述程序中,使用了一个字符数组 `sentence` 存储输入的英文句子。在读入句子时,使用了 `%[^\n]` 来读入整个句子,包括空格和标点符号。接着使用循环遍历句子中的每个字符,如果遇到空格或者句子结尾,就说明当前单词遍历完了,记录下当前单词的长度,并将其与最长单词比较,如果比最长单词长,就更新最长单词。最后输出最长单词即可。
阅读全文