一个小函数,实现通配符*和?的字符串匹配。

来源:互联网 发布:vb insert into 语法 编辑:程序博客网 时间:2024/04/29 06:05

实现通配符*和?的小程序:

BOOL WINAPI FuzzyMatch(IN const char *src, IN const char *dst){int itm = 0;int itn = 0;int tmp_a = 0;int tmp_b = 0;if (0x00 == src[0]){return TRUE;}while(src[itm] && dst[itn]){tmp_a = itm;tmp_b = itn;while(src[itm] && dst[itn]){if ('*' == src[itm]){itm++;if (0x00 == src[itm]){return TRUE;}continue;}if (src[itm] == dst[itn] || '?' == src[itm]){itm++, itn++;}else if (src[itm] != dst[itn]){itn++;}}if (0x00 ==dst[itn]){while('*' == src[itm]){itm++;}}if (0x00 == src[itm] && 0x00 == dst[itn]){return TRUE;}else{itm = tmp_a;itn = tmp_b + 1;}}return (src[itm] == dst[itn]);}//字符串匹配支持*,?的匹配BOOL WINAPI StringMatch(IN const char *src, IN const char *dst){bool x = false;int itm = 0;int itn = 0;while(src[itm] && dst[itn]){if ('*' == src[itm]){return FuzzyMatch(src + itm + 1, dst + itn);}if ('?' == src[itm] || src[itm] == dst[itn]){itm++, itn++;continue;}return FALSE;}return (src[itm] == dst[itn]);}




0 0
原创粉丝点击