蓝桥杯 算法提高 最长单词【C语言】---Q君

编写一个函数,输入一行字符,将此字符串中最长的单词输出。
输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出最先出现的。
样例输入
I am a student
样例输出
student

#include<stdio.h>
#include<string.h>
int main()
{
	char s[100000];//存字符串
	char a[1000][100000];
	char arr[100000];
	char *p=s;
	int i,len1,len2;
	int j=0,k=0;//k表示单词个数,j为单词长度;
	gets(s);//不能用scanf,由于有空格,用gets输入
	while(*p)
	{
		//为空格时k加1,j置0;
		if(*p==' '&&*(p+1)!=' ')
		{
			a[k][j]='\0';
			k++;
			j=0;	
		}
		else
		{
			a[k][j++]=*p;
		}
		p++;
	}
	strcpy(arr,a[0]);//拷贝
	for(i=1;i<=k;i++)
	{
		len1=strlen(arr);
		len2=strlen(a[i]);
		if(len2>len1)
		{
			strcpy(arr,a[i]);
		}
	}
	puts(arr);//输出最长单词
	return 0;
}
发布了3 篇原创文章 · 获赞 2 · 访问量 54

猜你喜欢

转载自blog.csdn.net/weixin_43614987/article/details/104409581