文章
37
粉丝
168
获赞
13
访问
285.3k
char[]版本
#include <bits/stdc++.h>
using namespace std;
bool cmp(char *s1, char *s2){
char *p1=s1, *p2=s2;
while(*(p1++)==*(p2++));
return *(--p1)<*(--p2);
}
int main()
{
char s[105];
char *ss[105];
while(cin >>s){
int len=strlen(s);
char *sp=s;
for(int i=0;i<len;i++){
ss[i]=sp++;
}
sort(ss,ss+len,cmp);
for(int i=0; i<len; i++){
cout<<ss[i]<<endl;
}
}
}
string版本
#include <bits/stdc++.h>
using namespace std;
bool cmp(string a, string b){
return a<b;
}
int main()
{
string s;
string ss[100];
while(cin >>s){
int len=s.size();
for(int i=0; i<len; i++)
ss[i]=s.substr(i,len-i); //拷贝s字符串中i之后len-i个字符
sort(ss,ss+len,cmp);
for(int i=0; i<len; i++){//s的长度和后缀字串个数一样为len
cout<<ss[i]<<endl;
}
}
}
登录后发布评论
暂无评论,来抢沙发