字符串string写法
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
//bool cmp(string a,string b){
// return a>b;
//}
int main(){
string s1;
int i,j,n;
while(getline(cin,s1)){
n=s1.length();
string *s2=new string[n];
for(i=0;i<n;i++){
s2[i]=s1.substr(i);
}
sort(s2,s2+n,cmp);
for(i=0;i<n;i++){
cout<<s2[i]<<endl;
}
}
return 0;
}
字符串数组写法
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
bool cmp(char *a,char *b){
return strcmp(a,b)<0;
}
int main(){
char s1[100];
char *s2[100];
int i,j,n;
while(cin.getline(s1,100)){
n=strlen(s1);
for(i=0;i<n;i++){
s2[i]=s1+i; //****把每个子串地址保存到指针数组
}
sort(s2,s2+n,cmp);
for(i=0;i<n;i++){
cout<<s2[i]<<endl;
}
}
return 0;
}