遍历字符串进行比较,需要先找到完整的子串,然后再统计长度
运行结果:
代码:
#include <stdio.h>
#include <string.h>
int fun(char* s1,char* s2)
{
char* p,*q;
int len = strlen(s2);
int tmplen = 0,maxlen = 0;
while(*s1 !='\0')
{
//找到匹配s2的位置
p = s1;
q = s2;
while( (*p !='\0') && (*q!='\0') )
{
if(*p == *q)
{
p++;
q++;
}else
break;
}
if(*q == '\0') //说明找到匹配的字符串
{
//开始判断长度
tmplen = len;
while(*p !='\0')
{
q = s2;
while( (*p !='\0') && (*q!='\0') && (*q == *p) )
{
tmplen++;
q++;
p++;
}
if(tmplen > maxlen)
{
maxlen = tmplen;
}
if(*q != '\0')
{
break;
}
}
s1++;
}else
s1++;//s1指针后移
}
return maxlen;
}
int main()
{
int N,i,j;
int len =0,maxlen = 0;
char str1[10010]={0};
char str2[10010]={0};
scanf("%d",&N);
getchar();
for(i=0;i<N;i++)
{
gets(str1);
gets(str2);
printf("%d\n",fun(str1,str2));
}
return 0;
}