用C语言实现串的BF算法
时间: 2024-05-02 11:18:04 浏览: 92
下面是C语言实现串的BF算法的示例代码:
```c
#include <stdio.h>
#include <string.h>
// BF算法实现串匹配
int BF(char* str, char* pattern)
{
int i = 0, j = 0;
int len1 = strlen(str);
int len2 = strlen(pattern);
while (i < len1 && j < len2) {
if (str[i] == pattern[j]) {
i++;
j++;
} else {
i = i - j + 1;
j = 0;
}
}
if (j == len2) {
return i - j;
} else {
return -1;
}
}
int main()
{
char str[] = "hello world";
char pattern[] = "world";
int index = BF(str, pattern);
printf("匹配结果:%d\n", index);
return 0;
}
```
BF算法的思路很简单,就是从主串的第一个字符开始和模式串的第一个字符进行匹配,如果相同,则继续匹配下一个字符,如果不相同,则从主串的下一个字符开始重新匹配。如果在匹配过程中,模式串的所有字符都匹配成功了,那么就说明匹配成功了,返回主串中匹配的起始位置,否则返回-1。
阅读全文