自己整一个排序函数就完了
#include<iostream> #include<string> #include<algorithm> using namespace std; bool cmp(string a,string b){ if(a.size()==b.size()){ if(a[0]==b[0]){ return cmp(a.substr(1),b.substr(1)); } else { return a[0]<b[0]; } } else { return a.size()<b.size(); } } int main(){ int n; string data[100]; while(cin>>n){ for(int i=0;i<n;i++){ cin>>data[i]; } sort(data,data+n,cmp); for(int i=0;i<n;i++){ cout<<data[i]<<endl; } } }