#include<iostream>
using namespace std;
int main() {
string s;
while (cin >> s) {
int count = 0; // 统计数字的个数
int sOldSize = s.size();
for (int i = 0; i < s.size(); i++) {
if (s[i] >= '0' && s[i] <= '9') {
count++;
}
}
// 扩充字符串s的大小,也就是每个空格替换成"number"之后的大小
s.resize(s.size() + count * 5);
int sNewSize = s.size();
// 从后先前将空格替换为"number"
for (int i = sNewSize - 1, j = sOldSize - 1; j < i; i--, j--) {
if (s[j] > '9' || s[j] < '0') {
s[i] = s[j];
} else {
s[i] = 'r';
s[i - 1] = 'e';
s[i - 2] = 'b';
s[i - 3] = 'm';
s[i - 4] = 'u';
s[i - 5] = 'n';
i -= 5;
}
}
cout << s << endl;
}
}
enen不太会写
一、出错点
1.不会进行字符串的输入
2.后面思路不清晰
二、理解后的思路
1.进行字符串的输入
2.开辟新的空间,方便number填入
3.从后面开始填入,不是数字直接填入,是数字填入number,改变i
三、总结
多理清思路,敲代码,因为你看懂了并不代表你会敲代码了!!!
又是双指针的巧妙运用~