概述
一、BF算法原理
子串的定位操作通常称为串的模式匹配(其中T称为模式串)。这是串的一个重要操作,许多软件,如果有编辑菜单的话,则其中必有查找子菜单项,这就是一个模式匹配问题。、
Index(S, T, pos)
初始条件:串S和T存在,T是非空串;
1<=pos<=S.Length-T.Length+1;
操作结果:若主串S中存在与T相等的子串,返回它在主串第pos个位置后第一次出现的位置,否则返回0;
基本思想:从主串S的第pos个字符起和模式的第一个字符比较之,若相等,则继续逐个比较后继字符;否则从主串的下一个字符起再重新和模式的字符比较之。依次类推,直到T中的每个字符依次和主串S中的一个连续的字符序列相等,则称匹配成功,函数值为和模式T中的第一个字符相等的字符在主串中的序号,否则称匹配不成功。
例:主串S="ababcabcacbab",模式T="abcac"
BF算法比较简单,下面来考虑他的实现
二、实现
#include<iostream>
using namespace std;
int BF(char S[], char T[])
{
int i = 0, j = 0;
while (S[i] != '