用bf算法实现字符串匹配

有没人帮忙看看代码~,感觉没什么问题,但就是匹配失败/哭死。

  • 这是代码
    #include
    using namespace std;
    #include
    #define MAXSIZE 255
    typedef struct {
    char ch[MAXSIZE];
    int length;}SString;
    int Index(SString s ,SString t,int pos){
    int i= pos;int j= 0;
    while(i
    if(s.ch[i]==t.ch[i]){
    i++;j++;}
    else {
    i=i-j+1;j=0;}
    }
    if(j==t.length)
    return i-j;
    else
    return -1;
    }
    int main(){
    SString s,t;
    int pos;
    cout<<"请输入主串\n";
    cin>>s.ch;
    cout<<"请输入子串\n";
    cin>>t.ch;
    s.length=strlen(s.ch);
    t.length=strlen(t.ch);
    cout<<"请输入开始第一次匹配的位置:\n";//i起始的位置
    cin>>pos;
    cout <return 0;}

img

img

  • 运行结果

    img

你可以看下我博客中的KMP算法,里面有写到BF算法希望帮到你