/*1、考虑输入字符串中没有数字 可能有*的情况*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str, ans; cin >> str; int digit = 0;
for (int i = 0; i < str.length(); i++)
{
if (!isdigit(str[i]))
ans.push_back(str[i]);
else //给每个数字左右都加上一个*
{
digit += 1;
ans.push_back('*');
ans.push_back(str[i]);
ans.push_back('*');
}
}
if (digit != 0) // 删掉两个数字之间的"**"
{
for (int i = 0; i < ans.length() - 3; i++)
{
if (isdigit(ans[i]) && ans[i + 1] == '*' && ans[i + 2] == '*' && isdigit(ans[i + 3]))
{
ans.erase(i + 1, 2); //删除"**"
}
}
cout << ans << endl;
}
else //输入的字符串里没有数字 原样输出
cout << str;
return 0;
}
/*2、正则匹配替换*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str; cin>>str;
regex reg("([0-9]+)"); //regex reg("(\\d+)");
string ans = regex_replace(str,reg,"\*$1\*"); //$1为正则表达式里第一个括号里的内容
cout<<ans;
return 0;
}