#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
char *ss(char *a,char *b)
{
char *longstr,*shortstr;
if(a==NULL && b==NULL)
return NULL;
if(strlen(a)>strlen(b))
{
longstr=a;
shortstr=b;
}
else
{
longstr=b;
shortstr=a;
}
if(strstr(longstr,shortstr)!=NULL)
return shortstr;
char *substr=(char *)malloc(sizeof(char)*(strlen(shortstr)+1));
for(int i=strlen(shortstr)-1;i>0;i--)
for(int j=0;j<=strlen(shortstr)-i;j++)
{
memcpy(substr,shortstr+j,i);
substr[i]='\0';
if(strstr(longstr,substr)!=NULL)
return substr;
}
return NULL;
}
int main()
{
char a[]="1223";
char b[]="223421";
char *c;
c=ss(a,b);
cout<<c;
return 0;
}
编程查找两个字符串最大公共子串
最新推荐文章于 2020-01-24 17:39:38 发布