编写一个函数,返回两个字符串的最大公串!例如,“adbccadebbca”和“edabccadece”,
返回“bccade”
//编写一个函数,返回两个字符串的最大公串!例如,“adbccadebbca”和“edabccadece”,
//返回“bccade”
#include <iostream>
using namespace std;
char* Max(const char *p,const char *q){
static char a[20];
char b[20];
int max=0;
int Len=0;
int i=0;
for (;*p!='\0';p++)
{
Len=i=0;
while ((*(q+i)!='\0')&&(*p!=*(q+i)))
i++;
if (*(q+i)=='\0')
continue;
while (*(p+Len)==*(q+i)){
b[Len]=*(q+i);
Len++;
i++;
}
if (max<Len){
max=Len;
for (int j=0;j<Len;j++)
a[j]=b[j];
a[Len]='\0';
}
}
if (max==0)
{
cout<<"没有找到公共串"<<endl;
getchar();
exit(1);
}
return a;
}
void main(){
char a[]="adbccadebbca";
char b[]="edabccadece";
char *p=new char[20];
p=Max(a,b);
cout<<p<<endl;
system("pause");
}