用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。C语言
时间: 2024-05-01 13:18:59 浏览: 81
C语言编程-编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度;
5星 · 资源好评率100%
以下是一个实现该功能的示例代码:
```c
#include <stdio.h>
#include <string.h>
void print_longest_word(char *str) {
char longest_word[100]; // 用于存储最长的单词
char current_word[100]; // 用于存储当前正在检查的单词
int longest_len = 0; // 记录最长单词的长度
int current_len = 0; // 记录当前单词的长度
int i = 0, j = 0;
while (str[i] != '\0') {
if (str[i] == ' ') {
current_word[j] = '\0'; // 将当前单词结尾标记为'\0'
current_len = strlen(current_word);
if (current_len > longest_len) {
strcpy(longest_word, current_word); // 更新最长单词
longest_len = current_len;
}
j = 0; // 重置当前单词的计数器
} else {
current_word[j] = str[i];
j++;
}
i++;
}
// 处理最后一个单词
current_word[j] = '\0';
current_len = strlen(current_word);
if (current_len > longest_len) {
strcpy(longest_word, current_word);
longest_len = current_len;
}
printf("最长的单词是:%s\n", longest_word);
}
int main() {
char str[100];
printf("请输入一行字符串:");
fgets(str, sizeof(str), stdin);
print_longest_word(str);
return 0;
}
```
该函数首先定义了两个字符数组 `longest_word` 和 `current_word`,分别用于存储最长的单词和当前正在检查的单词。
在循环中,程序遍历输入的字符串,如果遇到空格,则说明当前单词已经结束,将其结尾标记为`\0`,然后检查该单词的长度是否大于当前记录的最长单词的长度,如果是,则更新最长单词和最长单词的长度。
最后,程序还需要处理最后一个单词,因为它没有空格结尾。
在主函数中,程序首先读入一行字符串,然后调用 `print_longest_word` 函数来输出最长的单词。
阅读全文