利用c语言编写一个简单的字符串朴素模式匹配算法
时间: 2023-05-16 12:05:28 浏览: 79
好的,以下是一个简单的字符串朴素模式匹配算法的 C 语言实现:
```c
#include <stdio.h>
#include <string.h>
int naive_match(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) {
return i;
}
}
return -1;
}
int main() {
char text[] = "hello world";
char pattern[] = "world";
int pos = naive_match(text, pattern);
if (pos == -1) {
printf("Pattern not found.\n");
} else {
printf("Pattern found at position %d.\n", pos);
}
return 0;
}
```
这个算法的思路很简单,就是从文本串的每个位置开始,逐个比较文本串和模式串的字符,如果匹配成功,则返回匹配的位置。这个算法的时间复杂度是 $O(nm)$,其中 $n$ 是文本串的长度,$m$ 是模式串的长度。