题目描述
将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变
注意:输入数据可能有多行
输入描述:
输入一个字符串
输出描述:
字符中所有出现的数字前后加上符号“*”,其他字符保持不变
示例1
输入
Jkdi234klowe90a3
输出
Jkdi234klowe90a3
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
while(cin>>str)
{
for(int i=0;i<str.size();i++)
{
if(isdigit(str[i])&&!isdigit(str[i+1])&&!isdigit(str[i-1])&&str[i+1]!='*'&&str[i-1]!='*')//当前是数字前后两个都不是数字
{ //并且不是*前后加*
cout<<'*'<<str[i]<<'*';
}
else if(!isdigit(str[i+1])&&isdigit(str[i])&&isdigit(str[i-1])&&str[i+1]!='*')//当前是数字前面一个是数字,后面一个 //是字母并且不是*
{
cout<<str[i]<<'*';
}
else if(isdigit(str[i])&&isdigit(str[i+1])&&!isdigit(str[i-1])&&str[i-1]!='*')//当前是数字,前面一个是字母,并且不是*后面一个是数字
cout<<'*'<<str[i];
else
cout<<str[i];
}
cout<<endl;
}
return 0;
}