编写一个函数,输入一行字符,将此字符串中最长的单词输出。
输入仅一行,多个单词,每个单词间用一个空格隔开。单词仅由小写字母组成。所有单词的长度和不超过100000。如有多个最长单词,输出最先出现的。
样例输入
I am a student
样例输出
student
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
// string s, t ,maxt;
int j=0, max = 0;
// getline(cin, s);
char* t;
char s[100000];
char *maxt;
gets(s);
//getchar();
t = strtok(s, " ");
while(t)
{
// cout << strlen(t) << endl;
if(max < strlen(t))
{
maxt = t;
max = strlen(t);
// cout << t << " " << maxt << endl;
}
t = strtok(NULL, " ");
}
cout << maxt << endl;
//下面注释掉的最后一个单词不能maxt
// cout << s << endl;
/* for(int i=0; s[i]; i++)
{ cout << t << j << endl;
if(s[i+1] == '\n')
{
// cout << t << j << endl;
if(max < j)
{
max = j;
maxt = t;
}
}
if(s[i] != ' ')
{
t += s[i];
j++;
}
else if(s[i] == ' ' )
{
cout << t << j << endl;
if(max < j)
{
max = j;
maxt = t;
t = "";
j = 0;
}
}
}
cout << maxt << endl;
*/
return 0;
}