
输入通配符表达式
一组字符串
输出:
返回匹配的结果,正确输出true,错误输出false
#include<iostream>
#include<string>
using namespace std;
bool fan(string a, string b)
{
int i;
for (i = 0; i < b.size(); i++)
{
if (a[i] == b[i])
{
continue;
}
else
{
if (a[i] == '?')
{
continue;
}
else if (a[i] == '*')
{
if (a[i + 1] == b[i + 1])
{
continue;
}
if (a[i + 1] == '?')
{
continue;
}
if ((b[i + 1] >= '0' && b[i + 1] <= '9') || (b[i + 1] >= 'A'&&b[i + 1] <= 'z'))
{
a.insert(i + 1, 1, '*');
}
}
else
{
return false;
}
}
}
if (i == a.size())
{
return true;
}
else
{
return false;
}
}
int main()
{
bool k;
string a, b;
while (cin >> a >> b)
{
k = fan(a, b);
if (k == 0)
{
cout << "false" << endl;
}
else
{
cout << "true" << endl;
}
}
}

本文深入探讨了一种用于字符串匹配的通配符算法实现,该算法能够处理包含问号(?)和星号(*)的通配符表达式,对一组字符串进行精确或模糊匹配,并返回匹配结果。通过对代码的逐行解析,读者可以理解算法如何处理各种通配符情况,为实际应用提供了清晰的指导。
651

被折叠的 条评论
为什么被折叠?



