利用 c 语言写一个串的简单模式匹配布鲁特福斯算法并显示。
时间: 2024-02-11 08:08:10 浏览: 72
好的,这里是一个简单的 C 语言实现布鲁特福斯算法的代码:
```c
#include <stdio.h>
#include <string.h>
void brute_force(char* text, char* pattern) {
int n = strlen(text);
int m = strlen(pattern);
int i, j;
for (i = 0; i <= n - m; i++) {
for (j = 0; j < m; j++) {
if (text[i+j] != pattern[j])
break;
}
if (j == m)
printf("Pattern found at index %d\n", i);
}
}
int main() {
char text[] = "AABAACAADAABAAABAA";
char pattern[] = "AABA";
brute_force(text, pattern);
return 0;
}
```
在这个例子中,我们使用了 `brute_force` 函数来进行模式匹配。我们首先计算了字符串 `text` 和 `pattern` 的长度,然后对于每个可能的起始位置,检查它是否匹配模式。如果匹配,我们就打印出该位置。最后,在 `main` 函数中,我们使用了一个简单的例子来测试我们的代码。
相关问题
利用c语言写一个串的简单模式匹配布鲁特福斯算法
好的,下面是一个简单的布鲁特福斯模式匹配算法的C语言实现:
```c
#include <stdio.h>
#include <string.h>
void bruteForce(char *text, char *pattern) {
int n = strlen(text);
int m = strlen(pattern);
for (int i = 0; i <= n - m; i++) {
int j;
for (j = 0; j < m; j++) {
if (text[i+j] != pattern[j])
break;
}
if (j == m)
printf("Found pattern at index %d\n", i);
}
}
int main() {
char text[] = "hello world";
char pattern[] = "world";
bruteForce(text, pattern);
return 0;
}
```
这个算法的基本思想是:对于文本串text和模式串pattern,从文本串的第一个位置开始,逐个比较文本串中与模式串匹配的子串。如果匹配成功,输出匹配的位置。
在代码中,我们首先计算出文本串text和模式串pattern的长度,然后从文本串的第一个位置开始,逐个比较文本串中与模式串匹配的子串。如果匹配成功,输出匹配的位置。
阅读全文