C++通配符
#include<iostream>
using namespace std;
bool PathernMatch(char *pat, char *str)
{
	char *s = NULL;
	char *p = NULL;
	bool star = false;
	bool bBreak = false;
	do
	{
		bBreak = false;
		for (s = str, p = pat; *s; ++s, ++p)
		{
			switch (*p)
			{
			case '?':
				break;
			case '*':
				star = true; //出现*匹配符
				str = s;
				pat = p;
				if (!*++pat)
					return true;
				bBreak = true; //退出循环
				break;
			default:
				if (*s != *p)
				{
					if (!star)
						return false;
					str++;
					bBreak = true;
				}
				break;
			}
			if (bBreak) //退出循环 重新开始循环
				break;
		}
		if (bBreak == false)
		{
			if (*p == '*')
				++p;
			return (!*p);
		}
	} while (true);
}
int main()
{
	char a[100] = "\\Device\\*\\Content.IE5\\index.dat";
	char c[100] = "\\Device\\*\\Content.IE5\\*\\index.dat";
	char b[100] = "\\Device\\Harddiskvolume\\Content.IE5\\Femporary Internet Files\\Content.IE5\\index.dat";
	char d[100] = "\\*\\Content.IE5\\index.dat";
	char e[100] = "\*层图层\*顶";
	char f[100] = "一层图层";
	char g[100] = "二层图层";
	char h[100] = "二三层图层";
	char i[100] = "二搜索三层图层顶顶顶";
cout << PathernMatch(e, f) << endl;
	cout << PathernMatch(e, g) << endl;
	cout << PathernMatch(e, h) << endl;
	cout << PathernMatch(e, i) << endl;
	return 0;
}
C++通配符的更多相关文章
- jQuery选择器中,通配符[id^='code']input[id$='code'][id*='code']
		
1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']&qu ...
 - 读书笔记--SQL必知必会06--用通配符进行过滤
		
6.1 LIKE操作符 通配符(wildcard),用来匹配某些值的的特殊字符. 在搜索子句中必须通过LIKE操作符使用通配符. 通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符 ...
 - 配置IIS的通配符应用程序映射
		
使用IIS 6架设网站,如果要使用伪静态的功能,可能需要设置“通配符应用程序映射(执行顺序)”. 在Windows Server 2012 r2 的IIS 8中,对应的是添加设置“通配符脚本映射”,参 ...
 - jQuery的选择器中的通配符[id^='code'] 等示例及说明
		
1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']&quo ...
 - SpringMVC(六)  RequestMapping 路径中ant风格的通配符
		
SpringMVC支持路径中包含ant风格的通配符,常用的几种通配符及意义如下: ? 任意一个字符 * 任意多个字符 ** 匹配多层路径 测试控制器代码: package com.tiekui.spr ...
 - bzoj 3507: [Cqoi2014]通配符匹配
		
Description 几乎所有操作系统的命令行界面(CLI)中都支持文件名的通配符匹配以方便用户.最常见的通配符有两个,一个是星号(“”’),可以匹配0个及以上的任意字符:另一个是问号(“?”),可 ...
 - jQuery的选择器中的通配符
		
(1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");// ...
 - Linux Shell 通配符、元字符、转义符【转帖】
		
作者:程默 说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1 1 2 3 4 [chengmo@localhost ~/shell]$ ls a.txt ...
 - 一劳永逸:域名支持通配符,ASP.NET Core中配置CORS更轻松
		
ASP.NET Core 内置了对 CORS 的支持,使用很简单,只需先在 Startup 的 ConfigureServices() 中添加 CORS 策略: public void Configu ...
 - linux中的通配符与正则表达式
		
在linux中,有通配符及正则表达式,那么什么是通配符和正则表达式,什么时候用? 通配符 它是由shell解析,并且一般用于匹配文件名,实际上就是shell解释器去解析的特殊符号,linux系统通 ...
 
随机推荐
- Java 多线程同步和异步详解
			
java线程 同步与异步 线程池 1)多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线 程的处理的数据,而B线程又修改了A线程处理的数理.显然这是由于全局资源造成 ...
 - PIL的ImageDraw的颜色问题
			
因为我的图片的单通道的,所以用 draw = ImageDraw.Draw(image) im_width, im_height =], info[], info[], info[]) color=d ...
 - Redis集群搭建详细过程整理备忘
			
三.安装配置 1.环境 使用2台centos服务器,每台机器上部署3个实例,集群为三个主节点与三个从节点: 192.168.5.144:6380 192.168.5.144:6381 192.168. ...
 - 快速体验 Sentinel 集群限流功能,只需简单几步
			
️ Pic by Alibaba Tech on Facebook 集群限流 可以限制某个资源调用在集群内的总 QPS,并且可以解决单机流量不均导致总的流控效果不佳的问题,是保障服务稳定性的利器. S ...
 - LL(1),LR(0),SLR(1),LALR(1),LR(1)对比与分析
			
前言:考虑到这几种文法如果把具体内容讲下来肯定篇幅太长,而且繁多的符号对初学者肯定是极不友好的,而且我相信看这篇博客的人已经对这几个文法已经有所了解了,本篇博客的内容只是对 这几个文法做一下对比,加深 ...
 - MATLAB技巧—sort和sortrows函数
			
MATLAB技巧-sort和sortrows函数 1.sort函数 sort函数用于对数据进行排序,通过help sort命令,可以查找到sort函数的具体用法: Y = SORT(X,DIM,MOD ...
 - JDBC工具类-DButils(QueryRunner-ResultSetHandler)
			
简述: DBUtils是Java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码. DBUtils三个核心功能: QUeryRunne ...
 - Dapper的分页代码
			
public KeyValuePair<Pagination, IList<AttachmentModel>> AttachmentPagination(Pagination ...
 - git cherry命令来比较两个分支的不同
			
git cherry 命令使用 1. 两个参数的情况 git cherry -v origin/master asa 比较本地的asa分支和远程master的差别 git cherry -v mast ...
 - Redis源码解析:22sentinel(三)客观下线以及故障转移之选举领导节点
			
八:判断实例是否客观下线 当前哨兵一旦监测到某个主节点实例主观下线之后,就会向其他哨兵发送"is-master-down-by-addr"命令,询问其他哨兵是否也认为该主节点主观下 ...