描述
将一个字符中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。
数据范围:字符串长度满足 1 \le n \le 100 \1≤n≤100
输入描述:
输入一个字符串
输出描述:
字符中所有出现的数字前后加上符号“*”,其他字符保持不变
示例1
输入:
Jkdi234klowe90a3
复制输出:
Jkdi*234*klowe*90*a*3*
#include <iostream>
#include <string.h>
std::string representsNumber(std::string str)
{
std::string rtnStr;
int len = str.length();
int i = 0;
while (i < len)
{
int tempi = i;
char c = str[i];
if(!std::isdigit(c)) //不是数字
{
if(std::isdigit(str[tempi - 1]))
{
rtnStr += '*';
}
rtnStr += c;
}
else //是数字
{
if(!std::isdigit(str[tempi - 1]))
{
rtnStr += '*';
}
rtnStr += c;
}
i++;
}
if(std::isdigit(str[len-1]))
{
rtnStr += '*';
}
return rtnStr;
}
int main()
{
std::string str;
getline(std::cin, str);
std::cout << representsNumber(str) << std::endl;
return 0;
}