返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数返回值为0。 T非空,1<=pos<=StrLength(S)
int Index(String S,String T,int pos) { int i=pos; //i用于主串S中当前位置下标,若pos不为1,则从pos位置开始匹配 int j=1; while(i<=S[0]&&j<=T[0]) {//S[0]和T[0]存储了两串的长度 if(S[i]==T[i]) { i++; j++; } else { i=i-j+2; //i退回到上次匹配首位的下一位 j=1; //j退回到子串T的首位 } } if(j>T[0]) return i-T[0]; else return 0; }