C语言蛮力BF匹配算法
时间: 2024-12-02 13:19:48 浏览: 26
C语言中的Brute Force(蛮力)BF匹配算法通常用于简单的字符串查找,也被称为暴力搜索或线性搜索。这种算法的基本思想是从主串的第一个字符开始,逐个比较每个字符是否与目标子串的第一个字符相等。如果相等,则继续比较下一个字符;如果不等,就移动主串到下一个位置,再次从头开始比较。这个过程会一直持续到找到整个子串或者遍历完整个主串都没有找到为止。
以下是C语言中蛮力BF匹配算法的一个简单示例:
```c
#include <stdio.h>
#include <string.h>
// 检查主串str1是否包含子串str2
int bf_match(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
for (int i = 0; i <= len1 - len2; i++) {
if (strcmp(&str1[i], str2) == 0) { // 使用strcmp进行逐个字符比较
return i;
}
}
return -1; // 如果没有找到,返回-1表示匹配失败
}
int main() {
char str1[] = "Hello, World!";
char str2[] = "World";
int index = bf_match(str1, str2);
if (index != -1) {
printf("子串 '%s' 在主串 '%s' 中的位置是 %d\n", str2, str1, index + 1); // 加1是因为索引是从0开始的
} else {
printf("子串 '%s' 不在主串 '%s' 中\n", str2, str1);
}
return 0;
}
```
阅读全文