C++字符串匹配(一):BF算法

算法原理:

        BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。


下面是C++的算法实现过程:

#include "iostream"
#include "cstring"
#include "stdio.h"
using namespace std;

int Strstr(char s1[], char s2[])
{
int len1 = strlen(s1);//第一个字符串长度
int len2 = strlen(s2);//第二个字符串长度
int n = 0;
for (int i = 0; i < len1; i++)
{
int k = i, j = 0;                   //将i的值赋给k,便于下面循环的进行
for (j; j < len2;j++,k++)
{
       if (s1[k] != s2[j])       //有不同字符时,跳出循环
break;
}
if (j==len2)                      //如果成功匹配循环结束时,j的值为len2
{
cout << "匹配成功," << "第一次匹配的位置是:第" << i + 1 << "位" << endl;
break; //找到匹配串之后,跳出循环,如果想得到所有的匹配位置,可以注释此行。
}
}
return 0;
}

int main()
{
Strstr("rafewerwffewqrw", "fe");
return 0;
}

运行结果:

猜你喜欢

转载自blog.csdn.net/kksc1099054857/article/details/78035764