返回子串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;
}