CCF认证 201409-3字符串匹配
欢迎访问我的CCF认证考试题解目录哦 https://blog.****.net/richenyunqi/article/details/83385502
题目描述
算法设计
这道题可以用正则表达式来解。具体实现见代码注释吧。
C++代码
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;//读取需要匹配的字符串
int n,m;
scanf("%d%d%*c",&m,&n);
regex r("[[:alpha:]]*"+s+"[[:alpha:]]*");//[:alpha:]表示任意字符,*表示0个或多个这样的字符
if(m==0)//m是0,利用regex::icase标志,表示匹配时忽略大小写
r=regex("[[:alpha:]]*"+s+"[[:alpha:]]*",regex::icase);
while(n--){
getline(cin,s);//读取要匹配的字符串
if(regex_match(s,r))//匹配成功
puts(s.c_str());//输出
}
return 0;
}