请用C语言编程有菜单的程序,实现串的模式匹配的BF算法。
时间: 2024-05-04 07:16:45 浏览: 84
好的,以下是用C语言编写的串的模式匹配BF算法的菜单程序:
```c
#include <stdio.h>
#include <string.h>
void bf_algorithm(char* text, char* pattern) {
int i, j, k;
int text_len = strlen(text);
int pattern_len = strlen(pattern);
for (i = 0; i <= text_len - pattern_len; i++) {
k = i;
for (j = 0; j < pattern_len; j++) {
if (text[k] == pattern[j])
k++;
else
break;
}
if (j == pattern_len) {
printf("匹配成功,模式串在文本串中的位置为: %d\n", i);
return;
}
}
printf("匹配失败\n");
}
int main() {
char text[100];
char pattern[100];
int choice;
printf("请选择操作:\n");
printf("1. BF算法串的模式匹配\n");
printf("2. 退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("请输入文本串:\n");
scanf("%s", text);
printf("请输入模式串:\n");
scanf("%s", pattern);
bf_algorithm(text, pattern);
break;
case 2:
printf("退出程序\n");
return 0;
default:
printf("输入有误\n");
return -1;
}
return 0;
}
```
该程序实现了一个简单的菜单,其中包含了串的模式匹配的BF算法。用户可以选择输入文本串和模式串,然后程序将使用BF算法对它们进行匹配。如果匹配成功,程序将输出模式串在文本串中的位置;如果匹配失败,程序将输出“匹配失败”。
阅读全文