找出两个字符串最长的子字符串
#include <iostream>
#include <string>
using namespace std;
string longestsubstr(string str1,string str2,int *p)
{
string res;
if(str1.size()==0||str2.size()==0)
return res;
int start=0;
string str=str1+str2;
for(unsigned int i=str1.size();i<str.size();i++)
{
int len=0;
for(unsigned int j=0;j<str.size()-i;j++)
{
if(str[i+j]==str[j])
len++;
else
len=0;
if(len>*p)
{
*p=len;
start=j-len+1;
}
}
}
res=str.substr(start,*p);
return res;
}
int main()
{
int *p,max=0;
p=&max;
string str1,str2;
string str1="abcdabafghijk";
string str2="abclkmopafghijk";
//cin>>str1>>str2;
string str=longestsubstr(str1,str2,p);
//if(*p==0)
// printf("%d\n",0);
//else
// cout<<str<<" "<<*p;
return 0;
}