通配符C++实现
来源:互联网 发布:淘宝刷手论坛 编辑:程序博客网 时间:2024/06/06 14:07
#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 b[100]="\\Device\\Harddiskvolume\\Content.IE5\\Femporary Internet Files\\Content.IE5\\index.dat";
cout<<PathernMatch(a,b)<<endl;
return 0;
}
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 b[100]="\\Device\\Harddiskvolume\\Content.IE5\\Femporary Internet Files\\Content.IE5\\index.dat";
cout<<PathernMatch(a,b)<<endl;
return 0;
}
- c语言递归实现的通配符搜索
- 文件通配符匹配检测C算法实现
- C语言实现的带通配符的字符串匹配
- rock c语言实现的带通配符匹配算法
- C语言通配符
- 通配符C++实现
- C语言通配符匹配、文件名通配符匹配算法(wildchar.c)
- 单函数实现通配符算法
- java 递归实现通配符匹配
- 通配符实现动态方法调用
- 通配符
- 通配符
- 通配符
- 通配符
- 通配符
- 通配符
- 通配符
- 通配符
- swing
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- struts2中的Action-validation.xml国际化传参问题
- 自己定义一个outputFormat
- Boost智能指针——scoped_ptr
- 通配符C++实现
- RandomAccessFile 随机访问文件
- 第一篇,主题感想吧!
- Partitioner, SortComparator and GroupingComparator in Hadoop
- Android学习笔记(5&&6) ————采用SQLite存储数据及在SDCard中创建数据库
- const 作用1
- 整理文档案
- Extjs学习 Ext.tree.TreePane
- Android---单元测试 (2)