蛮力bf字符串匹配算法代码实现c,使用键盘键入两个字符串
时间: 2024-11-27 13:08:18 浏览: 27
蛮力BF(Brute Force)字符串匹配算法是一种简单的查找方法,它逐字符地比较给定字符串串S1中的每个字符是否与另一个字符串串S2的相应位置字符相等。以下是使用C语言的一个简单实现:
```c
#include <stdio.h>
#include <string.h>
int bf_match(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
for (int i = 0; i <= len1 - len2; ++i) {
int j;
for (j = 0; j < len2; ++j) {
if (str1[i + j] != str2[j]) {
break;
}
}
// 如果str1从i开始的len2个字符都与str2完全匹配,则返回i
if (j == len2) {
return i;
}
}
// 如果没有找到匹配,返回-1表示未找到
return -1;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 防止换行符干扰
str1[strlen(str1)-1] = '\0'; // 去除fgets添加的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2)-1] = '\0';
int match_index = bf_match(str1, str2);
if (match_index != -1) {
printf("匹配成功,起始索引: %d\n", match_index);
} else {
printf("未找到匹配。\n");
}
return 0;
}
```
在这个例子中,用户通过`fgets`函数输入两个字符串,然后`bf_match`函数会检查它们是否匹配。如果找到了匹配,就返回匹配的起始索引;如果没有找到,返回-1。
阅读全文