bf算法c语言实现
时间: 2023-08-17 11:18:43 浏览: 163
BF算法(Brute-Force 算法)又称暴力搜索算法,是一种朴素的字符串匹配算法。下面是其C语言实现:
```c
#include <stdio.h>
#include <string.h>
int bf(char *str, char *pattern) {
int len = strlen(str);
int plen = strlen(pattern);
int i, j;
for (i = 0; i <= len - plen; i++) {
for (j = 0; j < plen; j++) {
if (str[i + j] != pattern[j]) {
break;
}
}
if (j == plen) {
return i;
}
}
return -1;
}
int main() {
char str[] = "hello world";
char pattern[] = "world";
int pos = bf(str, pattern);
if (pos == -1) {
printf("Pattern not found.\n");
} else {
printf("Pattern found at position %d.\n", pos);
}
return 0;
}
```
其中,`bf` 函数实现了 BF 算法的具体逻辑,接收两个参数,分别是文本串 `str` 和模式串 `pattern`。在 BF 算法中,我们需要遍历文本串中每一个可能的位置,然后判断该位置是否匹配模式串。具体实现中,我们使用两个嵌套的循环来实现这一过程。
在主函数中,我们示例了如何使用 `bf` 函数来查找某个模式串在某个文本串中的出现位置。如果返回值为 `-1`,则表示该模式串在文本串中没有出现过;否则返回的是模式串在文本串中第一次出现的位置。
阅读全文