BF 算法(Brute Force)
从主串S的第一个字符开始和模式T的第一个字符进行比较,若相等,则继续比较两者的后续字符;若不相等,则从主串S的第二个字符开始和模式T的第一个字符进行比较,重复上述过程,若T中的字符全部比较完毕,则说明本趟匹配成功;若S中的字符全部比较完毕,则匹配失败。这个算法称为朴素的模式匹配算法,简称BF算法
代码:
#include "StdAfx.h"
#include <stdio.h>
#include <string.h>
#include "stdlib.h"
#define MAXLEN 100
int BFMatch(char *x, char *y);
int main(int argc, char **argv)
{
char s[MAXLEN] = {"ababcababa"}; //目标串
char p[MAXLEN] = {"ababa"}; //模式串
int flag = BFMatch(s, p);
if(flag == -1)
printf("匹配失败!\n");
else
printf("匹配成功!从目标串的s[%d] = %c 处开始匹配\n", flag, s[flag]);
system("PAUSE");
return 0;
}
int BFMatch(char *s, char *p)
{
int m, n;
m = strlen(s);
n = strlen(p);
for(int i = 0;