|
|
#include<iostream>using namespace std;const int N=26;extern int com(const void *a,const void *b);int main(){ char *s="Gejun Com on C Come in"; if(strlen(s)<=26) { int i=0;char *as[N]={NULL}; while(*s!='\0') { if(*s!=' ') as[i++]=s; s++; } int num=i; qsort(as,num,sizeof(char*),com); for(i=0;i<num;i++) cout<<as[i]<<endl; // cout<<*(char*)as[0]<<" "<<*(char*)as[1]<<endl; }system("Pause");return 0;}int com(const void *a,const void *b){ //char t1=**(char**)a,t2=**(char**)b;//cout<<t1<<" "<<t2<<" for test"<<endl; return strcmp(*(char**)a,*(char**)b); } 上述代码的作用就是将字符串"Gejun Com on C Come in"转换成它的后缀数组,结果图:
C Come inCom on C Come inCome inGejun Com on C Come ine inejun Com on C Come ininjun Com on C Come inm on C Come inme innn C Come inn Com on C Come inom on C Come inome inon C Come inun Com on C Come in请按任意键继续. . . 后缀数组的作用是用来识别字符处的最长重复子字符串! |
|