本题灵感来自于讨论区的一位大佬,看他是用Java做的这道题,使用了replaceAll通过正则表达式匹配替换的方式实现的,然后我想既然是正则表达式,那么C++也有正则表达式,我们也来写一个用C++正则表达式实现匹配替换的程序
#include<bits/stdc++.h>
using namespace std;
int main() {
string str; //存放输入的字符串
while(getline(cin, str)) { //获取输入的一行字符串
regex reg("(\\d+)"); //regex为C++中的正则表达式类型
string output = regex_replace(str, reg, "\*$1\*"); //将字符串str中与reg匹配的子串替换为前后加*号
cout<<output<<endl; //输出替换后的字符串
}
return 0;
}