一. 朴素的模式匹配算法
- /*************************************************************************************/
- /*返回子串T在主串S中的第pos个字符后的位置(包括该字符位置)。若不存在,则函数返回值为0。 */
- /*************************************************************************************/
- int Index(string S,string T, int pos)
- {
- int slen = S.length();
- int tlen = T.length();
- //判断非法情况
- if (pos+tlen-1>slen)
- {
- return 0;
- }
- //循环变量i,j,k都表示的是位序,而不是字符串的索引。
- for(int i=pos;i<=slen-tlen+1;i++)
- {
- int k=i;
- int j;
- for (j=1;j<=tlen;j++)
- {
- if(S[k-1]==T[j-1])
- {
- k++;
- continue;
- }
- else
- {
- break;
- }
- }
- if (j==tlen+1)
- {
- return i;
- }
- }
- return 0;
- }
转载于:https://blog.51cto.com/lixiaomeng/850627