#include<iostream>
using namespace std;
char * maxstr(const char* source,const char* dest)
{
const char* str_short;
const char* str_long;
if(*source==NULL || *dest==NULL)
{
return NULL;
}
if(strlen(source)<strlen(dest))
{
str_short=source;
str_long=dest;
}
else
{
str_short=dest;
str_long=source;
}
int len=strlen(str_short)+1;
char* str_sub;
str_sub = (char *)malloc(sizeof(char) * len);
for(int i=strlen(str_short);i>0;i--)
{
for(int j=0;j<=strlen(str_short)-i;j++)
{
memcpy(str_sub,&str_short[j],i);
str_sub[i]='/0';
if(strstr(str_long,str_sub)!=NULL)
return str_sub;
}
}
return NULL;
}
int main()
{
char source[]="56789";
char dest[]="45567894546";
char *re=maxstr(source,dest);
cout<<re<<endl;
return 0;
}