#include <string>
#include <iostream>
using namespace std;
/***string下标:0,1,2,...***/
/***查找从s中pos位置开始,t在s中的位置,返回的结果为下标***/
int Index(string s,string t,int pos)
{
int i=pos;
int j=0;
while(i<s.size()&&j<t.size())
{
if(s[i]==t[j])
{
++i;
++j;
}
else
{
i=i-j+1;/***i退回到上次匹配的首位的下一位***//***假如下标从1开始,这里则为多少?(i=i-j+2)***/
j=0;
}
}
if (j==t.size())
return i-t.size();
else
return 0;
}
int main()
{
string s="abcdefghijk";
string t="hi";
int k=Index(s,t,2);
cout<<k<<endl;
return 0;
}
朴素模式匹配
最新推荐文章于 2023-04-21 17:12:15 发布