用c语言写用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数
时间: 2024-02-05 18:14:26 浏览: 79
下面是用 C 语言实现的函数,可以实现将一行字符串中最长的单词输出:
```c
#include <stdio.h>
#include <string.h>
void print_longest_word(char *str) {
char *word_start = NULL;
char *longest_word_start = NULL;
int longest_word_len = 0;
int word_len = 0;
for (int i = 0; i <= strlen(str); i++) {
if (str[i] == ' ' || str[i] == '\0') {
if (longest_word_len < word_len) {
longest_word_len = word_len;
longest_word_start = word_start;
}
word_len = 0;
word_start = NULL;
} else if (word_start == NULL) {
word_start = &str[i];
word_len++;
} else {
word_len++;
}
}
printf("The longest word: ");
for (int i = 0; i < longest_word_len; i++) {
printf("%c", *(longest_word_start + i));
}
printf("\n");
}
int main() {
char str[] = "This is a test string for the longest word function";
print_longest_word(str);
return 0;
}
```
该函数首先定义了一些变量,包括:
- `word_start`:指向当前单词的开头;
- `longest_word_start`:指向目前为止最长单词的开头;
- `longest_word_len`:目前为止最长单词的长度;
- `word_len`:当前单词的长度。
然后,函数使用一个循环遍历字符串中的每个字符。如果遇到空格或字符串结尾,则认为当前单词已经结束,计算当前单词的长度,并比较它与目前为止最长单词的长度。如果当前单词更长,则更新最长单词的长度和开头指针。循环结束后,函数输出最长单词。
在主函数中,我们可以定义一个字符串数组,并将其传递给 `print_longest_word` 函数。在本例中,我们使用了一个简单的测试字符串来演示函数的用法。
阅读全文