一个以 . 结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。
输入格式
输入一行字符串,表示这个简单英文句子,长度不超过 500。
输出格式
该句子中最长的单词。如果多于一个,则输出第一个。
输入样例:
I am a student of Peking University.
输出样例:
University
1.介绍string的几个函数
string.back()------获取字符串最后一个字符
string.pop_back()--------去掉字符串最后一个字符
str[num].resize(str[num].size()-1)------将字符串长度-1
2.解决方案
方法一:
#include <iostream>
using namespace std;
int main(){
string str,res;
while(cin>>str ){
if(str.back()=='.') str.pop_back();
if(str.size() > res.size()) res=str;
}
cout<<res;
return 0;
}
方法二:
#include <iostream>
#include <cstring>
using namespace std;
int main(){
string str[510],max;
int num=0;
while(cin>>str[num] ){
num++;
}
//cout<<num<<endl;
str[num-1].resize(str[num-1].size()-1);
//str[num-1].erase(str[num-1].size(),1);
int count=0;
for(int i=0;i<num;i++){
if(str[i].size()>max.size()) max=str[i],count=i;
}
//cout<<str[num-1].size()<<endl;
//cout<<count<<endl;
if(count<num-1) cout<<str[count];
else{
for(char c:str[count]){
if(c!='.') cout<<c;
}
}
return 0;
}