用蛮力法实现c语言字符串匹配
时间: 2024-09-14 21:05:21 浏览: 43
蛮力法(Brute Force)是一种简单直观的字符串匹配算法。在C语言中实现蛮力法字符串匹配,基本思想是将目标字符串(主串)与模式字符串(模式串)进行对比,从主串的第一个字符开始与模式串的第一个字符对齐,若相同则继续比较下一个字符,若不同则从主串的第二个字符开始重新与模式串的第一个字符对齐,重复这个过程,直到模式串完全匹配或主串中已经没有足够的位置与模式串对齐为止。
以下是用C语言实现蛮力法字符串匹配的一个简单示例代码:
```c
#include <stdio.h>
#include <string.h>
// 蛮力法字符串匹配函数
int brute_force_match(const char *text, const 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) {
return i; // 如果全部字符都匹配,返回模式串在主串中的起始位置
}
}
return -1; // 如果匹配失败,则返回-1
}
int main() {
const char *text = "This is a simple example.";
const char *pattern = "simple";
int position = brute_force_match(text, pattern);
if (position != -1) {
printf("找到模式串的位置:%d\n", position);
} else {
printf("未找到模式串。\n");
}
return 0;
}
```
在这个代码中,`brute_force_match` 函数通过双层循环遍历主串和模式串,如果在某个位置发现字符不匹配,则外层循环移动一位,内层循环重新开始比对。如果在某个位置模式串的所有字符都匹配,则返回该位置,否则当主串遍历完毕仍未找到匹配的模式串时,返回-1。
阅读全文