本题灵感来自于讨论区的一位大佬,看他是用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;
}