⑴ 判断两个字符串是否匹配,其中字符串中包括通配符*或(串)。*代表0个或多个字符代表一个字符
给你一个用递归算法写的字符串匹配函数,
非常精练,你可以参考一下,希望能看懂。
输入:
s,指向含通配符的匹配字符串,
d,指向要匹配的字符目标
返回值:
1,匹配一致
0,不能匹配
int StrMatch(const char *s,const char *d)
{ for(;*s;s++,d++)
{ if(*s=='*')
{ for(s++;;d++)
{ if(StrMatch(s,d))return 1;
if(*d==0)return 0;
}
}
if(*d==0)return 0;
if(*s!='?'&&*s!=*d)return 0;
}
return !(*d);
}