c语言.写一个函数,输入一行字符,将此字符串中最长的单词输出。
时间: 2023-12-18 14:06:54 浏览: 139
下面是一个实现该功能的 C 语言函数:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void print_longest_word(char *str) {
int max_len = 0, cur_len = 0, start_pos = 0, max_start_pos = 0;
int i;
for (i = 0; i <= strlen(str); i++) {
if (isspace(str[i]) || str[i] == '\0') {
if (cur_len > max_len) {
max_len = cur_len;
max_start_pos = start_pos;
}
cur_len = 0;
start_pos = i + 1;
} else {
cur_len++;
}
}
printf("The longest word is: ");
for (i = max_start_pos; i < max_start_pos + max_len; i++) {
printf("%c", str[i]);
}
printf("\n");
}
int main() {
char str[100];
printf("Please input a string: ");
fgets(str, 100, stdin);
print_longest_word(str);
return 0;
}
```
这个函数接受一个字符串作为输入,并通过遍历字符串来确定最长的单词。它使用了一个变量 `max_len` 来存储当前找到的最长单词的长度,以及一个变量 `max_start_pos` 来存储当前找到的最长单词的起始位置。在遍历字符串的过程中,每当遇到一个空格或字符串结束符时,就会判断当前单词的长度是否大于 `max_len`,如果是,则将 `max_len` 和 `max_start_pos` 更新为当前值,并将 `cur_len` 和 `start_pos` 重置为 0 和下一个单词的起始位置。最后,该函数使用 `printf` 函数输出最长的单词。
阅读全文