📄 程序简介.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 + -