'.'符号还可以直接匹配
‘*’符号只能依靠递归来实现
分三种情况:
a* 可以匹配 “” 、 “a” 、 “aa…a”
#include <iostream>
bool match(char* str, char* pattern) {
if (*str == '\0')
if(*pattern == '\0')
return true;
else if(*pattern=='\0')
return false;
if (*(pattern + 1) == '*') {
if (*str == *pattern || (*pattern=='.' && *str!='\0'))
// *匹配出现一次 *匹配多次 *匹配0次
return match(str + 1, pattern + 2) || match(str + 1, pattern) || match(str, pattern + 2);
else
return match(str, pattern + 2);
}
return (*str == *pattern || *pattern == '.') && match(str + 1, pattern+1);
}
int main()
{
std::cout << match((char*)"bab",(char*) "ba*b");
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务