串的bf匹配这个为什么不对呀

哪个兄弟帮我看看,真想不出来了

img

img


#include <bits/stdc++.h>

#define Maxsize 100

using namespace std;

struct SqString{

char date[Maxsize];

int length;

};

void StrAssign(SqString&s,char cstr[]){

int i;

for(i=0;cstr[i]!='\0';i++){

s.date[i]=cstr[i];

s.length=i;

}

}

void DispStr(SqString s){

int i;

if(s.length >0){

for(int i=0;i<s.length ;i++)

cout<<s.date [i]<<endl;

}

}

int BF(SqString s,SqString t){

int i=0,j=0;

while(i<s.length &&j<t.length ){

if(s.date[i]==t.date [j]){

i++;j++;

}

else{

i=i-j+1;j=0;

}

}

if(j>=t.length )

return (i-t.length);

else

return (-1);

}

int main(){

SqString s,t;

char t1[200];

for(int n=0;n<3;n++){

cin>>t1[n];

}

char s1[200];

for(int n=0;n<12;n++){

cin>>s1[n];

}

StrAssign(s,s1);

 StrAssign(t,t1);

cout<< BF(s,t)<<endl;

}