题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
#include <iostream> #include <string> using namespace std; bool IsNum(char c) { if (c >= '0' && c <= '9'){ return true; } return false; } int main () { string s; getline(cin, s); char c = '*'; for (int i = 0; i < s.length(); i++){ if (IsNum(s[i]) //第一位元素是数字,在0位置加* && (i == 0)){ s.insert(s.begin() + i, c); i++; } if (!IsNum(s[i]) //第 i 位元素是其他字符,第i+1位是数字,在i+1位置加* && IsNum(s[i+1]) ){ s.insert(s.begin() + i + 1, c); i++; } if (IsNum(s[i]) //第 i 位元素是数字,第i+1位是其他字符,在i+1位置加* && (i == s.length()-1 || !IsNum(s[i+1]))){ s.insert(s.begin() + i + 1, c); i++; } } cout << s <<endl; return 0; }