📄 bfsrch.c
字号:
//直观的模式匹配算法(BF算法)。
char STR[80]="The 80C552 has two redeced power modes of operation.";//主串。
char SUB1[]="80C552"; //模式串1
char SUB2[]="80C51"; //模式串2
int len (char c[]) //求字符串长度
{
int i=0;
while (c[i]) i++;
return i;
}
int BFSRCH (char M[],char S[]) //BF算法
{
int m,n,i,j,k;
m=len(M); //求主串长度
n=len(S); //求模式串长度
for (k=0;k<=m-n;k++) { //最大匹配操作遍数为:m-n+1
i=k;j=0; //本次匹配的起点
while (j<n && M[i]==S[j]) {i++;j++;} //匹配过程
if (j==n) return k; //匹配成功,返回模式串在主串中的位置
else k++; //匹配起点向后移动一个字符,继续匹配
}
return -1; //匹配失败
}
main ( )
{
int f;
f=BFSRCH (STR,SUB1);//匹配成功,f=4
f=BFSRCH (STR,SUB2);//匹配失败,f=-1
while (1) ; //在这一行设置断点,中止程序运行,以便观察程序运行的结果
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -