带‘.‘和’*‘的字符串匹配
2015-09-01 17:16
387 查看
’.‘代表一个任意字符
a’*‘代表0~n个a
测试两个字符串是否匹配
a’*‘代表0~n个a
测试两个字符串是否匹配
#include <iostream> #include <string> using namespace std; bool matchCore(const char* str,const char* pattern) { if(*str=='\0' && *pattern=='\0') return true; if(*str!='\0'&&*pattern=='\0') return false; if(*(pattern+1)=='*') { if(*pattern==*str ||(*pattern=='.'&&*str!='\0')) return matchCore(str+1,pattern+1)||matchCore(str+1,pattern)||matchCore(str,pattern+2); else return matchCore(str,pattern+2); } if(*pattern==*str ||(*pattern=='.'&&*str!='\0')) return matchCore(str+1,pattern+1); return false; } bool match(const char* str,const char* pattern) { if(str==NULL || pattern==NULL) return false; return matchCore(str,pattern); } int main() { string _str,_pattern; getline(cin,_str,'\n'); getline(cin,_pattern,'\n'); const char *str=_str.c_str(); const char *pattern=_pattern.data(); cout<<match(str,pattern)<<endl; }
相关文章推荐
- JSP - Actions
- Linux 下的shell
- 22.IOS开发中(null)与<null>的处理
- MySQL 存在索引但是不被使用的情况
- 华为 p8上配置outllook,同步日历/邮件
- Ios 多国语言的使用(已汉语和英语为例)
- 问题:oracle long 与 clob;结果:long类型比clob到底差在什么地方?
- 编译CentOS中的Mono+Jexus,提供ASP.NET支持,并支持运行WinForm
- unity3d 学习第一天
- 几种常用JSON库性能比较
- 21.使用友盟摇一摇分享 会引起正在音乐播放的停止
- DataView的ToTable方法,类似数据库Distinct。
- 控制所生成的servlet的结构: JSP page指令
- IOS第17天(1,Quartz2D图片水印)
- 【Leetcode】【Medium】Decode Ways
- Android图片高斯模糊的一些方法
- 编译最新版本ffmpeg 提供给CentOS Mono调用
- Android通过第三方应用将自己的应用信息分享出去
- 文字换行中word-wrap、white-space和word break的区别
- Learningspark10--Spark流