简单语法题
一个以 . 结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。
输入格式
输入这个简单英文句子,长度不超过 500。
输出格式
该句子中最长的单词。如果多于一个,则输出第一个。
输入样例:
I am a student of Peking University.
输出样例:
University
(string) s.back()—字符串s最后一个字符
(string) s.pop_back()—弹出字符串s最后一个字符
#include<iostream>
#include<sstream>
#include<string>
using namespace std;
int main()
{
string s;
getline(cin,s);
string str;
string ans;
stringstream ssin(s);
/*int max=-1;*/
while(ssin>>str)
{
if(str.back()=='.') str.pop_back();
/*if(str[str.size()-1]=='.') str.pop_back();*/
if(ans.size()<str.size()) ans=str;
/*int len=str.size();
if(max<len) {max=len;ans=str;}*/
}
cout<<ans<<endl;
return 0;
}
二、利用cin不能读取空格的特点
#include<iostream>
#include<sstream>
#include<string>
using namespace std;
int main()
{
string str;
string ans;
while(cin>>str)
{
if(str.back()=='.') str.pop_back();
if(ans.size()<str.size()) ans=str;
}
cout<<ans<<endl;
return 0;
}