主题:求大神相助,Bf算法
#include<stdio.h>
char s1[300000],s2[300000];
int str(char k[])
{
int i;
for(i=0;k[i]!='\0';i++);
return i;
}
int BF(char s[],char t[])
{
int a,b;
int i=1,j=1;
a=str(s);
b=str(t);
while(i<=a&&j<=b)
{
if(s[i]==t[j])
{
++i;
++j;
}
else {
i=i-j+2;
j=1;
}
}
if(j>b)
return i-b;
else return 0;
}
int main()
{
int n;
scanf("%s%s",s1,s2);
n=BF(s1,s2);
if(n>0)
printf("%d",n);
else printf("No\n");
}请求大神调试调试,万分感激
char s1[300000],s2[300000];
int str(char k[])
{
int i;
for(i=0;k[i]!='\0';i++);
return i;
}
int BF(char s[],char t[])
{
int a,b;
int i=1,j=1;
a=str(s);
b=str(t);
while(i<=a&&j<=b)
{
if(s[i]==t[j])
{
++i;
++j;
}
else {
i=i-j+2;
j=1;
}
}
if(j>b)
return i-b;
else return 0;
}
int main()
{
int n;
scanf("%s%s",s1,s2);
n=BF(s1,s2);
if(n>0)
printf("%d",n);
else printf("No\n");
}请求大神调试调试,万分感激