29. 编写匹配搜索程序。先根据用户的输入建立一个字符串,再提示用户输入另一个字符串,然后在原串中搜索,看是否存在与此相同的子串。若存在,则给出此子串在原串中的起始位置(第几个,比如,一开始就匹配,输出起始位置1),否则,给出没有找到的信息。
请高手过来解决一下
急哦~!~!~!
main()
{int m,n=0,i,j,x,y,k=0,d;
char a[10]={"chibdfasn"},b[10]={"incshibna"};
printf("a:");
for(i=0;i<strlen(a);i++)
printf("%c",a[i]);
printf("\n");
printf("b:");
for(i=0;i<strlen(b);i++)
printf("%c",b[i]);
printf("\n");
for(i=0;i<strlen(a);i++)
{ x=i;
for(j=0;j<strlen(b);)
{ y=j;
loop:
if(a[i]==b[j])
{ n++;
i++; j++;
goto loop;
} /*找最大子串*/
if(n>k)
{ k=n;
m=x; d=y;} /*k为子串的长度,m,n分别为求子串在a,b的第几位*/
i=x; j=y+1; n=0;
}
}
for(j=m;j<m+k;j++)
printf("%c",a[j]); /*输出a中的最大子串*/
printf("\n");
for(i=d;i<d+k;i++)
printf("%c",b[i]); /*输出b中的最大子串*/
}
这是原来编的
求最大子串 自己看看嘛