表示数字
题目描述
将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变
public static String MarkNum(String pInStr)
{
return null;
}
输入描述:
输入一个字符串
输出描述:
字符中所有出现的数字前后加上符号“*”,其他字符保持不变
输入例子:
Jkdi234klowe90a3
输出例子:
Jkdi*234*klowe*90*a*3*
解答代码:
#include<iostream>
#include<fstream>
#include<string>
#include<cstring>
#include<algorithm>
#include<sstream>
using namespace std;
int judge(char ch)
{
if(ch>='0' && ch <='9')
return 1;
else return 0;
}
int main()
{
string data;
int i;
while(cin>>data)
{
int length=data.length();
string result="";
for(i=0;i<length;i++)
{
if(judge(data[i]))
{
if(!judge(data[i-1]) || i==0)
result+="*";
result+=data[i];
}
else
{
result+=data[i];
if(i!=0 && judge(data[i-1]))
{
result[result.length()-1]='*';
result+=data[i];
}
}
}
if(judge(data[length-1]))
result+="*";
cout<<result<<endl;
}
return 0;
}