第十七章 17.3.2节练习

练习17.17

更新你的程序,令他查找输入序列中所有违反“ei”语法规则的单词。

解答:

#include <iostream>
#include <regex>
#include <string>

using namespace std;

int main(){
	string pattern("c[ei]");
	pattern = "[[:alpha:]]*" + pattern + "[[:alpha:]]*";
	regex r(pattern, regex::icase);
	smatch results;

	string test_str = "receipt freind theif receive";

	for (sregex_iterator it(test_str.begin(), test_str.end(), r), end_it; it != end_it; ++it){
		cout << it->str();
		cout	<< endl;
	}
}
尝试了几种smatch的操作,感觉还是很麻烦,索性就直接改正则表达式来完成。


练习17.18

修改你的程序,忽略包含“ei”但非拼写错误的单词,如“albeit”和“neighbor”。

解答:

17题的程序能处理这种情况。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值