![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLwkleOFTSq5keRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3ADOwITO1cDM2EDMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
暴力搜尋算法過程,用模式串P去和目标串T比較,如果對應字元比對成功,兩兩後移一位,如果比對不成功,模式串從T的下一個字元開始比對,重複上述執行過程
/**暴力搜尋算法,使用STL*/
#include<string>
#include<iostream>
using namespace std;//記得要寫命名空間std,不然用不了string
int i=0,j=0;
int bruteForce(string a,string b){
i=0;
int m=a.length();//目标串
int n=b.length();//模式串
while(i<m-n){
j=0;
while(a[i]==b[j]&&j<n){//比對過程
i++;
j++;
}
if(j==n){//比對成功
return i-n;//傳回比對成功處的index
}
i=i-j+1;//下一次比對開始處
}
return -1;
}
int main(int argc,char * argv[]){
char *a ="ajshdjfhf";
char *b ="djf";
int result=bruteForce(a,b);
cout<<result<<endl;
string aa=a;
string bb=b;
int result2=bruteForce(aa,bb);
cout<<result2<<endl;
return 0;
}