思路:这个题就直接遍历一遍找一下最长的就好
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
int cnt = 0,max1 = 0;
int x= 0,e=0;
for(int i=0;i<s.length();i++){
if(s[i]==' '||i==s.length()-1){
x = i;
if(cnt>max1){
max1 =cnt;
e = x;
}
cnt=0;
}
else cnt++;
}
//cout<<e<<" "<<max1<<endl;
for(int i=e-max1;i<=e;i++){
cout<<s[i];
}
}
后面发现直接当做多组输入来做也可以
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s,cnt;
int max1 = -1,len1 = 0;
while(cin>>s){
len1 = s.length();
if(len1>max1){
max1=len1, cnt = s;
}
}
cout<<cnt<<endl;
return 0;
}