#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 in Com on C Come in Come in Gejun Com on C Come in e in ejun Com on C Come in in jun Com on C Come in m on C Come in me in n n C Come in n Com on C Come in om on C Come in ome in on C Come in un Com on C Come in 请按任意键继续. . .后缀数组的作用是用来识别字符处的最长重复子字符串!
本文介绍了一个简单的C++程序,该程序用于构建一个特定字符串的后缀数组。通过使用qsort函数进行排序,程序展示了如何从输入字符串中生成并打印所有可能的后缀,从而帮助识别最长重复子字符串。
1万+

被折叠的 条评论
为什么被折叠?



