带有通配符的两个字符串匹配问题

来源:互联网 发布:淘宝如何分期购买 编辑:程序博客网 时间:2024/04/28 12:23
比如constchar*s1="abcdfgfgdfgbhcdf";const char*s2="**fgd**f*bh*";就是匹配的,并且输出fgdfgbh。
bool pipei(const char*s1,const char*s2){const char *beg=NULL;const char *t1=NULL,*t2=NULL;while(*s2){if(*s2=='*') s2++;else{if(t1==NULL) t1=s2;if(*(s2+1)=='*'||*(s2+1)=='\0') t2=s2;if(t2){int i=0;while (*s1&&t1<=t2){if(*s1==*t1){s1++;t1++;i++;}else{t1-=i;s1-=i;s1++;i=0;}}if(t1<=t2) return false;else if(!beg) beg=s1-i;t1=t2=NULL;}s2++;}}if(beg){string s(beg,s1);cout<<s<<endl;}return true;}

原创粉丝点击