串的模式匹配算法BF算法

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#define MAXLEN 255
using namespace std;

typedef struct
{
    char ch[MAXLEN+1];
    int length;
}SString;

int Index_BF(SString S,SString T,int pos)
{
    int i=pos,j=1;
    S.length=strlen(S.ch);
    T.length=strlen(T.ch);
    while(i<=S.length&&j<=T.length)
    {
        if(S.ch[i]==T.ch[j])
        {
            ++i;
            ++j;
        }
        else
        {
            i=i-j+2;
            j=1;
        }
    }
    if(j>T.length) return i-T.length;
    else return 0;
}

int main()
{
    SString S,T;
    cin>>S.ch;
    cin>>T.ch;
    cout<<Index_BF(S,T,1)<<endl;

    return 0;
}

阅读更多

没有更多推荐了,返回首页