在主函数中输入一行字符串(该行字符串中有空格),写一个子函数,将此字符串中最长的单词输出。如果同时有多个最长的单词,输出第一个。
时间: 2023-04-13 11:05:08 浏览: 133
可以使用以下步骤实现:
1. 在主函数中输入一行字符串,可以使用 `gets()` 或 `fgets()` 函数。
2. 编写一个子函数,接收字符串作为参数。
3. 在子函数中,使用 `strtok()` 函数将字符串分割成单词,同时记录每个单词的长度和位置。
4. 遍历所有单词,找到最长的单词并记录其位置。
5. 输出最长的单词。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
void find_longest_word(char *str) {
int max_len = , max_pos = , len = , pos = ;
char *word;
word = strtok(str, " "); // 分割第一个单词
while (word != NULL) {
len = strlen(word);
if (len > max_len) {
max_len = len;
max_pos = pos;
}
pos += len + 1; // 记录下一个单词的位置
word = strtok(NULL, " "); // 分割下一个单词
}
printf("最长的单词是:");
for (int i = max_pos; i < max_pos + max_len; i++) {
printf("%c", str[i]);
}
printf("\n");
}
int main() {
char str[100];
printf("请输入一行字符串:");
gets(str);
find_longest_word(str);
return ;
}
```
阅读全文