#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Status int
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define EType int
#define MAXSIZE 80
#define MAXSTRLEN 255
typedef unsigned char SString[MAXSTRLEN+1];
Status Index(SString S,SString T,int pos){
int i=pos,j=1;
while(i<S[0] && j<=T[0])
{
if(S[i]==T[j])
{
++i;
++j;
}
else
{
i=i-j+2;
j=1;
}
}
if(j>T[0])
return i-T[0];
else
return 0;
}
Status StrAssign(SString&T,char*chars){
char*c=chars;
int i;
T[0]=0;
for(i=1;*c;++c,++i){
if(i>MAXSTRLEN)break;
T[i]=*c;
}
T[0]=i-1;
return OK;
}
int main(){
char a[256],b[256];SString S,T;int i,j;
printf("请输入原的字符串\n");
gets(a);
printf("请输入被查找的字符串\n");
gets(b);
printf("请输入从第几位开始查找\n");
scanf("%d",&i);
StrAssign(S,a);
StrAssign(T,b);
j=Index(S,T,i);
printf("结果为:%d\n",j);
return 0;
}
数据结构:BF算法
最新推荐文章于 2023-09-22 22:16:09 发布