子串的定位运算通常称为串的模式匹配或串匹配。此运算的应用非常广泛,比如在搜索引擎、拼写检查、语言翻译、数据压缩等应用中,都需要进行串匹配。
BF算法是最简单直观的模式匹配算法。
BF算法代码如下:
int Index_BF(char s[],char t[],int pos){ int i=pos,j=1; while(i<=len(s)&&j<=len(t)){ if(s[i]==t[j]){ ++i;++j;c++; } else { i=i-j+2;j=1;c++; } } if(j>len(t)) return i-len(t); else return 0; }
模式匹配具体应用
#include<stdio.h> #include<string.h> #define max 100 int c=0; int len(char s[]){ //长度函数 int a; a=strlen(s); return a-1; } int Index_BF(char s[],char t[],int pos){ int i=pos,j=1; while(i<=len(s)&&j<=len(t)){ if(s[i]==t[j]){ ++i;++j;c++; } else { i=i-j+2;j=1;c++; } } if(j>len(t)) return i-len(t); else ret