朴素模式匹配
#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; }