C語言萬用字元匹配

2021-10-08 20:16:59 字數 882 閱讀 4342

參考:

#include

#include

/** defines and macros */

#define match      1

#define not_match  0

/* 匹配乙個字元的巨集 */

#define match_char(c1,c2,ignore_case)  ( (c1==c2) || ((ignore_case==1) &&(tolower(c1)==tolower(c2))) )

/*  

* 萬用字元匹配演算法

* @param src           [i] 字串

* @param pattern       [i] 含有萬用字元( * 或 ? 號)的字串

* @param ignore_case   [i] 是否區分大小寫,1 表示不區分,  0 表示區分

* @retval  1           src 匹配 pattern

* @retval  0           不匹配

*/int wildcharmatch(char *src, char *pattern, int ignore_case)

else

else}}

/* 如果src結束了,看pattern有否結束*/      

if (*pattern) 

else}/*

* 如下: 如果匹配字串的首字元(如pattern = "*abc", 其中的a)在待匹配的字串(如ababd)中有多個時, 

* 就會匹配失敗。原因是移動任意長的邏輯有欠缺。

*/int main(int argc, const char **ar**)

萬用字元匹配

implement wildcard pattern matching with support for and matches any single character.matches any sequence of characters including the empty sequence ...

萬用字元匹配

給定乙個輸入字串s 和模式p,p包含萬用字元?與星號 其中輸入s包含小寫字母a z,p包含小寫字母a z與?和星號,可以匹配任一字元,星號 可以匹配多個字元,包括空字元。給定輸入s與p,判斷s 與 p是否完全匹配。example 1 input s aa p a output false expla...

萬用字元匹配

1.遇到s和p都是 則直接返回true 2.判斷邊界條件如果s串已經遍歷完畢,則判斷p串是否便利完畢,如果p串長度大於s串,則判斷大於部分是否都是 如果是則返回true,否則返回false 3.判斷邊界條件如果p串已經便利完畢,則判斷s串是否便利完畢,是則返回true,否則返回false 4.判斷字...