给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include <iostream> using namespace std;
int main() { string s; while (cin >> s) { int nums_count = 0; int old_index = s.length() - 1; for (int i = 0; i < s.length(); i++) { if (s[i] >= '0' && s[i] <= '9') nums_count += 1; } s.resize(s.length() - nums_count + 6 * nums_count); int new_index = s.length() - 1; while (old_index >= 0) { if (s[old_index] >= '0' && s[old_index] <= '9') { s[new_index--] = 'r'; s[new_index--] = 'e'; s[new_index--] = 'b'; s[new_index--] = 'm'; s[new_index--] = 'u'; s[new_index--] = 'n'; } else s[new_index--] = s[old_index]; old_index -= 1; } cout << s << endl; } return 0; }
|