欢迎光临
我们一直在努力

【PTA-6翻了】2025-3-1

缘由PTA-6翻了【哪错了我】_编程语言-CSDN问答

使用字符串替换函数时,注意替换后,字符串长度会改变,要及时更新字符串的长度,否则会出现错误,有2种办法,1使用函数重新获取新字符串长度,这种不免后台循环,比较好的做法计算替换前后的差距进行加减运算。 

 

std::string str;
int cnt;
int j;//it is so 666 really 6666 what else can I say 6666666666
getline(std::cin, str);
int len = str.size();
for (int i = 0; i<len; i++){
if (str[i] == '6'){
cnt = 1;
for (j = i + 1; j<len; j++){
if (str[j] == '6')cnt++;
else break;
}
if (cnt>3 && cnt<10)
str.replace(i, cnt, "9"), len -= cnt – 1;//, len = str.size();
else if (cnt > 9)
str.replace(i, cnt, "27"), len -= cnt – 2;//, len = str.size();
cnt = 0;
}
}
std::cout << str;

赞(0)
未经允许不得转载:171主机测评 » 【PTA-6翻了】2025-3-1
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址