含通配符的字符串匹配问题

题目: 给定两个字符串,求字符串2,,在字符串1中的最先匹配结果。字符串2中 可以存在’*’符号,且该符号可以代表任意字符,即字符串2中存在通配符。 例如:输入:abcdefghabef,a*f 输出:abcdef

namespace std;int main(){int i=0,len=0,len1,len2,j=0,begin=0;string s,s1,s2,s3;getline(cin,s);len = s.size();/for(i=0;i<len;i++){if(s[i]!=’,’){s2+=s[i];}else{s1 = s2;s2.clear();}}len1 = s1.size();len2 = s2.size();if(s2 == “*”){cout<<s1;return 0;}for(i=0;i<len1;i++){while((s2[j]==’*’)||(s1[i]==s2[j])){if(s2[j]==’*’){if(j+1==len){s3.assign(s1,begin,len1-begin);cout<<s3;return 0;}while(s1[i]!=s2[j+1]){i++;if(i==len1){cout<<“失败”;return 0;}}j++;}else if(s1[i]==s2[j]){while(s1[i]==s2[j]){i++;j++;if(j==len2){s3.assign(s1,begin,i-begin);cout<<s3;return 0;}}}}j=0;begin = i;}return 0;}

将会错过更好的风景,保持一份平和,保持一份清醒。

含通配符的字符串匹配问题

相关文章:

你感兴趣的文章:

标签云: