用substr来分析这个字符串是否是以s为前缀的,然后用string数组来存。
最后stl的sort字典序排序之后输出头。
这题我用了string数组排序,需要注意的是stl的sort来排序的话起始位置为起始位置,但结束位置为终止位置加一
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
string us[1001];
int main()
{
string s; cin>>s;
int n; cin>>n;
char huiche;
scanf("%c",&huiche);
int len=s.length(),idx=0;
for(int i=0;i<n;i++)
{
string stmp; cin>>stmp;
//cout<<stmp.substr(0,len);
if(stmp.length()<len);
else if(stmp.substr(0,len)==s)
{
us[++idx]=stmp;
//cout<<idx;
}
}
if(!idx)cout<<s<<endl;
else
{
sort(us+1,us+idx+1); //begin & end+1
//for(int i=1;i<=idx;i++) cout<<i<<":"<<us[i]<<endl;
cout<<us[1]<<endl;
}
return 0;
}