帮我用C语言写个程序,输入一行字符,将此字符串中最长的单词输出,单词之间用空格分开。注意长度相同的都要输出。
时间: 2024-02-11 16:10:07 浏览: 86
好的,以下是一个简单的 C 语言程序,可以实现你的需求:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[1000], longest_word[1000];
int i, length, max_length = 0;
printf("请输入一行字符:");
gets(str);
for (i = 0; i <= strlen(str); i++) {
if (str[i] == ' ' || str[i] == '\0') {
if (length > max_length) {
max_length = length;
strncpy(longest_word, &str[i - length], length);
longest_word[length] = '\0';
} else if (length == max_length) {
strncpy(&longest_word[strlen(longest_word)], &str[i - length], length);
longest_word[strlen(longest_word) + length] = ' ';
longest_word[strlen(longest_word) + length + 1] = '\0';
}
length = 0;
} else {
length++;
}
}
printf("最长的单词是:%s\n", longest_word);
return 0;
}
```
上述代码中,我们通过 `gets()` 函数获取用户输入的一行字符并存储在 `str` 变量中。接着,我们使用 `for` 循环逐个遍历输入字符串中的每个字符,当遇到空格或者字符串末尾时,我们就可以判断当前单词的长度是否为最大长度。如果是,我们就将其复制到 `longest_word` 变量中,并在其后面添加空格;如果不是,则直接忽略。最后,我们输出 `longest_word` 变量即可。
阅读全文