用C语言一个函数来实现将一行字符串中最长的单词输出。 此行字符串从主函 数传递给该函数 1)把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。 2)把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运 行。
时间: 2024-03-17 10:47:57 浏览: 61
AntiAlias-Project,c语言数字转字符串函数源码,c语言程序
将两个函数放在同一个程序文件中的代码如下:
```c
#include <stdio.h>
#include <string.h>
void longest_word(char *str) {
char word[100], longest_word[100];
int i = 0, j = 0, max_len = 0;
int len = strlen(str);
while (i < len) {
// 跳过空格
while (i < len && str[i] == ' ') {
i++;
}
// 记录单词开始位置
j = i;
// 记录单词结束位置
while (i < len && str[i] != ' ') {
i++;
}
// 计算单词长度
int word_len = i - j;
// 更新最长单词
if (word_len > max_len) {
max_len = word_len;
strncpy(longest_word, str + j, word_len);
longest_word[word_len] = '\0';
}
}
printf("最长的单词是:%s\n", longest_word);
}
int main() {
char str[100];
printf("请输入一行字符串:");
fgets(str, sizeof(str), stdin);
// 去掉换行符
str[strcspn(str, "\n")] = '\0';
longest_word(str);
return 0;
}
```
将两个函数分别放在两个程序文件中的代码如下:
longest_word.c
```c
#include <stdio.h>
#include <string.h>
void longest_word(char *str) {
char word[100], longest_word[100];
int i = 0, j = 0, max_len = 0;
int len = strlen(str);
while (i < len) {
// 跳过空格
while (i < len && str[i] == ' ') {
i++;
}
// 记录单词开始位置
j = i;
// 记录单词结束位置
while (i < len && str[i] != ' ') {
i++;
}
// 计算单词长度
int word_len = i - j;
// 更新最长单词
if (word_len > max_len) {
max_len = word_len;
strncpy(longest_word, str + j, word_len);
longest_word[word_len] = '\0';
}
}
printf("最长的单词是:%s\n", longest_word);
}
```
main.c
```c
#include <stdio.h>
void longest_word(char *);
int main() {
char str[100];
printf("请输入一行字符串:");
fgets(str, sizeof(str), stdin);
// 去掉换行符
str[strcspn(str, "\n")] = '\0';
longest_word(str);
return 0;
}
```
编译和链接命令:
```
gcc -c longest_word.c -o longest_word.o
gcc -c main.c -o main.o
gcc longest_word.o main.o -o longest_word
```
执行命令:
```
./longest_word
```
阅读全文