字符串匹配之BF算法

来源:互联网 发布:进入编程模式失败 编辑:程序博客网 时间:2024/05/18 01:27
#include<iostream>#include<stdio.h>#include<string.h>#define MAXSIZE 255#define ERROR 0#define OVERFLOW -1#define OK 1using 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;}  

0 0
原创粉丝点击