#include<iostream>
using namespace std;
struct String
{
char s[100];
};
int Index(String S,String T,int pos){
int i=pos;int j=1;int n,m;
n=strlen(S.s);
m=strlen(T.s);
while(i<=n&&j<=m){
if(S.s[i-1]==T.s[j-1]){++i;++j;}
else{i=i-j+2;j=1;}}
if(j>m)return i-m;
else return 0;}
int main(){
struct String str1,str2;
int pos;int i,j,n,m,l;
cout<<"请输入一串字符(不超过100):"<<endl;
cin>>str1.s;
cout<<"已知的主串为:"<<str1.s<<endl;
cout<<"请输入一个模式串(字符不超过100):"<<endl;
cin>>str2.s;
cout<<"已知的模式串为:"<<str2.s<<endl;
cout<<"请输入一个pos值:";
cin>>pos;
l=Index(str1,str2,pos);
cout<<"模式匹配后的结果为:"<<l<<endl;
return 0;
}
数据结构:串的匹配2(C++代码实现)
最新推荐文章于 2022-05-07 20:40:06 发布