题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1106
心得:
sscanf函数可以从字符串格式化写入相符类型的数据,功能十分强大。参见http://baike.baidu.com/view/1364018.htm
代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int i,len,x;
char a[1001],buf[15];
vector<int> v;
while(cin>>a){
len=strlen(a);
v.clear();
memset(buf,'\0',sizeof(buf));
for(i=0;i<len;i++){
if(a[i]=='5') {
if(buf[0]!='\0'){
sscanf(buf,"%d",&x);
v.push_back(x);
memset(buf,'\0',sizeof(buf));
}
}
else buf[strlen(buf)]=a[i];
}
if(a[len-1]!='5') {
sscanf(buf,"%d",&x);
v.push_back(x);
}
sort(v.begin(),v.end());
copy(v.begin(),v.end()-1,ostream_iterator<int>(cout," "));
cout<<v[v.size()-1]; //最后的整数后不能有空格,否则PE
cout<<endl;
}
return 0;
}