帶有萬用字元的兩個字串匹配問題
阿新 • • 發佈:2019-02-11
比如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; }