编写一个函数,输入一行字符,将此字符串中最长的单词输出。
输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过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;
}