摘自《你必须知道的495个C语言问题》
此函数仅匹配*与?
int match(char *pat,char *str)
{
switch (*pat) {
case '\0': return !*str;
case '*': return match(pat+1,str) || *str && match(pat,str+1);
case '?': return *str && match(pat+1,str+1);
default: return *pat == *str && match(pat+1,str+1);
}
}
测试 printf("%d\n",match("a*b.c","aplomb.c");
将输出1