写一个函数输入一行字符,将此字符串中最长的单词输出用c语言。
时间: 2024-12-14 13:18:11 浏览: 30
C语言字符串的相关操作_字符操作函数_数据结构中字符串的相关操作_
5星 · 资源好评率100%
在 C 语言中,你可以编写一个函数来寻找并输出最长的单词。下面是一个简单的示例函数,它会接受一个字符串作为输入,然后分割成单词,并找到其中最长的那个:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void find_longest_word(char* str);
int main() {
char input[100]; // 存储用户输入的字符串
printf("请输入一行字符: ");
fgets(input, sizeof(input), stdin); // 从标准输入读取字符串,去掉换行符
input[strcspn(input, "\n")] = '\0'; // 清除fgets添加的换行符
// 调用函数找出并打印最长单词
find_longest_word(input);
return 0;
}
// 定义查找最长单词的函数
void find_longest_word(char* str) {
int len = strlen(str);
char longest_word[len + 1]; // 最长单词缓冲区
int longest_length = 0;
bool is_current_word = false;
for (int i = 0; i < len; i++) {
if (str[i] == ' ') { // 遇到空格,结束当前单词
if (is_current_word && longest_length > strlen(longest_word)) {
strcpy(longest_word, current_word);
longest_length = strlen(longest_word);
}
is_current_word = false;
current_word[0] = '\0';
} else {
current_word[strlen(current_word)] = str[i];
current_word[strlen(current_word) + 1] = '\0';
is_current_word = true;
}
}
// 检查最后一个单词是否是最长的
if (is_current_word && longest_length < strlen(current_word)) {
strcpy(longest_word, current_word);
}
printf("最长的单词是: %s\n", longest_word);
free(longest_word); // 注意释放内存
}
阅读全文