C语言用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。
时间: 2023-06-17 17:03:26 浏览: 99
以下是一个示例代码,其中函数名为`printLongestWord`,参数为字符串指针`str`:
```c
#include <stdio.h>
#include <string.h>
void printLongestWord(char *str) {
int max_len = 0, len = 0, start = 0, end = 0;
int i = 0, n = strlen(str);
while (i < n) {
if (str[i] != ' ') { // 找到单词的起始位置
start = i;
len = 0;
while (i < n && str[i] != ' ') { // 统计单词长度
len++;
i++;
}
if (len > max_len) { // 更新最长单词信息
max_len = len;
end = i;
}
} else {
i++;
}
}
// 输出最长的单词
printf("The longest word is: ");
for (i = start; i < end; i++) {
printf("%c", str[i]);
}
printf("\n");
}
int main() {
char str[100];
printf("Please input a string: ");
fgets(str, 100, stdin);
printLongestWord(str);
return 0;
}
```
该函数的实现思路如下:
1. 遍历字符串中的每个字符,如果是空格则跳过,否则表示找到了一个单词的起始位置;
2. 从单词起始位置开始,统计该单词的长度;
3. 如果该单词的长度大于当前最长单词的长度,则更新最长单词的信息;
4. 遍历完整个字符串后,输出最长的单词。
阅读全文