串模式的匹配
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define MAXSIZE 100
typedef struct str
{
char ch[MAXSIZE];
int length;
}str;
void enstr(str ch)//输入字符串
{ int i;
char *p;
p=ch.ch;
gets(p);
while(*p)
{
i++;
p++;
}
ch.length=i;
}
int index(str s,str t,int pos)
{
int i=pos,j=1;
while(i<=s.length&&j<=t.length)
{
if(s.ch[i]==t.ch[i])
{
i++;
j++;
}
else
{
i=i-j+2;
j=1;
}
}
if(j>t.length)
return i-t.length;
else
return 0;
}
main()
{ str s,t;
int pos,pos2;
enstr(s);
enstr(t);
scanf("%d",&pos);
pos2=index(s,t,pos);
printf("%d",pos2);
}
有问题,自己发现不了,麻烦高手指点一下……谢谢!