?? 程序簡介.txt
字號:
本程序所接受的通配符串為一形式標準的通配符串,即*不與通配符相連(如 *? ** 等).
當然也可以編一個簡單的函數將非標準通配符串化為等效的標準通配符串(讀者有興趣可以自己嘗試一下)
本程序主要算法如下:
編寫一個字符串匹配的判斷函數,將判斷分為兩步:"*"出現之前和"*"出現之后.
出現之前利用"sub_sour"和"sub_obje"兩個指針進行遞歸掃描,一旦出現對應字符不一致的情況,返回"0",判斷
結束.其中"?"視為萬能字符,即與任何字符相等.
出現之后將含通配符串中"*"之后的部分作為新串與目標串中未進行匹配判斷的部分進行遞歸匹配.具體實現
過程見程序體.
字符串匹配
【問題描述】
利用“通配符”,可以用簡單的方法標記一組字符串。
通配符有兩個,“?”代表一個任意字符,“*”代表0個或多個任意字符。
例如:
AB?.txt可以表示AB1.txt,AB2.txt,ABa.txt 等。
AB*.txt可以表示AB.txt, AB1.txt,AB332.txt,ABaa.txt等。
編寫程序,判斷一個字符串是否符合一個含有通配符的串。
【輸入文件】
從文件match.in讀取輸入。
第一行是一個串,含有通配符“?”或“*”,或兩者兼有。
第二行是一個數字n(3≤n≤10),代表后續有n個待檢驗串。
后面的n行,每行有一個不含通配符的待檢驗串。
輸入中的所有串均只包含英文字母(大小寫)和數字,不含空格,長度在80字符以內。
【輸出文件】
輸出到文件match.out中。將所有符合的串按原順序分行打印。在每一行末均輸出一個回車符。
【輸入樣例】
abcd?123*
4
abce123
abcda12345
abcda123
1234
【輸出樣例】
abcda12345
abcda123
【評分標準】
上傳c語言源程序為match.c。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -