第一种方法:
#include <stdio.h>
#include <string>
char s[51],t[11];
int next[11];
int index(char *s,char *t,int pos)//返回子串T在主串S中第pos个字符之后的位置
{
int i = pos;
int j = 0;
int len1 = strlen(s);
int len2 = strlen(t);
while(i<len1 && j<len2)
{
if(s[i]==t[j])
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(j>=len2)
return i-len2;
else
return -1;
}
int main()
{
int pos;
printf("输入主串:");
gets(s);
printf("\n");
printf("输入子串:");
gets(t);
printf("\n");
printf("从第几个字母开始:");
scanf("%d",&pos);
printf("\n");
int no = index(s,t,pos);
if(no>0)
{
printf("存在\n");
}
else
{
printf("不存在\n");
}
}