C语言用一个函数来实现一行字符串中最长的单词输出。此行字符串从主函数 传递给该函数: (1) 把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。 (2) 把两个函数分别放在两个程序文件中,作为两个文件进行编译、链接 和运行。
时间: 2024-04-30 22:20:26 浏览: 90
以函数形式找出文件中最长的字符串
以下是实现该功能的代码:
1. 两个函数放在同一个程序文件中
```c
#include <stdio.h>
#include <string.h>
void findLongestWord(char *str);
int main() {
char str[100];
printf("请输入一行字符串:\n");
fgets(str, 100, stdin);
findLongestWord(str);
return 0;
}
void findLongestWord(char *str) {
char word[100];
char longest_word[100];
int i = 0, j = 0, len;
len = strlen(str);
while (i < len) {
if (str[i] != ' ' && str[i] != '\n') {
word[j++] = str[i];
} else {
word[j] = '\0';
if (strlen(word) > strlen(longest_word)) {
strcpy(longest_word, word);
}
j = 0;
}
i++;
}
word[j] = '\0';
if (strlen(word) > strlen(longest_word)) {
strcpy(longest_word, word);
}
printf("最长的单词是:%s\n", longest_word);
}
```
2. 把两个函数分别放在两个程序文件中
文件1(main.c):
```c
#include <stdio.h>
#include "stringfunc.h"
int main() {
char str[100];
printf("请输入一行字符串:\n");
fgets(str, 100, stdin);
findLongestWord(str);
return 0;
}
```
文件2(stringfunc.c):
```c
#include <stdio.h>
#include <string.h>
void findLongestWord(char *str) {
char word[100];
char longest_word[100];
int i = 0, j = 0, len;
len = strlen(str);
while (i < len) {
if (str[i] != ' ' && str[i] != '\n') {
word[j++] = str[i];
} else {
word[j] = '\0';
if (strlen(word) > strlen(longest_word)) {
strcpy(longest_word, word);
}
j = 0;
}
i++;
}
word[j] = '\0';
if (strlen(word) > strlen(longest_word)) {
strcpy(longest_word, word);
}
printf("最长的单词是:%s\n", longest_word);
}
```
编译和运行:
```
gcc main.c stringfunc.c -o program
./program
```
阅读全文