#include<iostream>
#include<stdio.h>
#include<string.h>
#define MAXSIZE 255
#define ERROR 0
#define OVERFLOW -1
#define OK 1
using namespace std;
typedef int Status;
typedef char SString[MAXSIZE+1];
Status StrAsign(SString T,char *str){
int i;
if(strlen(str)>MAXSIZE)
return ERROR;
else{
T[0]=strlen(str);
for(i=1;i<=T[0];i++){
T[i]=*(str+i-1);
}
}
return OK;
}
Status Index(SString S,SString T,int num){
int i,j;
i=num;
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;
}
int main(){
SString S;
SString T;
SString R;
SString Q;
cout<<"请输入一个字符串作为主串:"<<endl;
cin>>R;
cout<<"请输入一个字符串作为子串:"<<endl;
cin>>Q;
StrAsign(S,R);
StrAsign(T,Q);
cout<<"主串和子串在第"<<Index(S,T,1)<<"处匹配"<<endl;
return 0;
}
字符串匹配之BF算法
最新推荐文章于 2024-01-25 22:58:59 发布