匹配算法
Brute Force算法
BF算法也叫朴素模式匹配算法,是由Bruce Force提出来的,算法基本思想就是简单粗暴的一次比较的问题。算法的C代码实现很简单,但是在操作中遇到了一些细节问题。
问题代码
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define LEN 100
int B_FIndex(char S[],char T[])
{
int i = 0,j = 0;
int Len_S = strlen(S); // 使用strlen函数获取字符串长度
int Len_T = strlen(T);
if(S == NULL || T == NULL || Len_S < Len_T) // Error Input
return -1;
while(i < Len_S && j < Len_T)
{
if(S[i] == T[j])
{
i++;
j++;
}// end if
else
{
i = i - j +1;
j = 0;
}// end else
}//end while
if(j >=Len_T)
{
printf("Success patterened at %d",i-j); // 匹配成功位置信息提示
return 0;
}
else
{
printf("Fail patterened");
return -1;
}
}//end BF
int main(int argc,char * argv[])
{
char S[LEN+1],T[LEN+1];
fgets(S,sizeof(S),stdin); // 采用推荐的安