0
点赞
收藏
分享

微信扫一扫

用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。

爪哇驿站 2022-05-06 阅读 31

1.把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。

#include<stdio.h>
#include<string.h>
int main(){
	char str[100];
	void L_word(char a[]);
	puts("输入字符串:");
	gets(str);
	puts("最长的单词是:");
	L_word(str);
	return 0;
}
void L_word(char a[]){
	int i,j;
	char t1[20],t2[20]={'\0'};
	for (i=0;a[i]!='\0';i++) {
		int j=0;
		while(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z') {
			t1[j++]=a[i++];           
		}
		t1[j]='\0';
		if(strlen(t1)>strlen(t2))     
			strcpy(t2,t1);              
	}
	puts(t2);
}

2.把两个函数分别放在两个程序文件中,作为两个文件进行编译、连接和运行。

首先建立一个文件夹,在该文件夹下建立两个源文件fiile1.c和fiile2.c。

其中file1.c中程序如下:

#include<stdio.h>
#include<string.h>	
#include"file2.c"
int main(){
	char str[100];
	extern void L_word(char a[]);
	puts("输入字符串:");
	gets(str);
	puts("最长的单词是:");
	L_word(str);
	return 0;
}

file2.c中程序如下:

#include<stdio.h>
void L_word(char a[]){
	int i,j;
	char t1[20],t2[20]={'\0'};
	for (i=0;a[i]!='\0';i++) {
		int j=0;
		while(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z') {
			t1[j++]=a[i++];           
		}
		t1[j]='\0';
		if(strlen(t1)>strlen(t2))  
			strcpy(t2,t1);              
	}
	puts(t2);
}

编译运行file1.c:

 

举报

相关推荐

0 条评论