求一个字符串中最长的字符串
返回起始位置,并输出重复的字串:
如输入:xyhhhabsh okkabshkl
输出:5 absh
以下是代码:
int FindMaxStr(char *src,char *res)
{
int first= -1;
int m=0;
for(int i=1;i<strlen(src);i++) //i控制扫描的步长
{
for(int k=0,j=0;j<strlen(src)-i;j++) //j控制扫描位置
{
if(src[j]==src[j+i])
k++;
else
{
k=0;
}
if(k>m)
{
m=k;
first=j-k+1;
}
}
}
int n=0;
if(m>0)
{
for(n=0;n<m;n++)
res[n]=src[first+n];
}
res[n]='\0';
return first;
}