#include <iostream>
using namespace std;
const int N = 1000;
char* FirstMaxSubString(const char *str1,char *str2)
{
int pos; //存放第一个最长子串的起始位置
int max = 0; //第一个最长子串的长度
int i,j;
for(i=0;str1[i];i++)
{
for(j=0;str2[j];j++)
{
for(int k=0;str1[i+k]==str2[j+k] && (str1[i+k] || str2[i+k]);k++)
if(k>max)
{
pos = j;
max = k+1;
}
}
}
char *result = new char[max+1];
for(i=0;i<max;i++)
result[i] = str2[pos++];
result[i] = '/0';
return result;
//或者直接用下面的语句返回,好处是不用申请空间
/*str2[pos+max] = '/0';
return (char *)(str2+pos);*/
}
int main()
{
char *str1 = new char[N];
char *str2 = new char[N];
cout<<"string_1:";
cin.getline(str1,N);
cout<<"string_2:";
cin.getline(str2,N);
//固定测试例
/*
char *str1 = "abractyeyt";
char *str2 = "dgdsaeactyey";
*/
cout<<"FirstMaxSubString:"<<FirstMaxSubString(str1,str2)<<endl;
return 0;
}