中级守护
题目链接: 酷町堂:4007
请问4007为什么输出是错的
代码如下:
#include<iostream>
using namespace std;
string str;
char a;
int main(){
getline(cin, str);
while(true){
cin >> a;
if(a == 'S'){
cout << str;
break;
}
else if(a == 'D'){
for(int i = 0; i < str.size(); i++){
if(i % 2 == 1 && str[i] >= 'A' && str[i] <= 'Z'){
str.erase(i, 1);
i--;
}
}
}
else if(a == 'I'){
for(int i = 1; i < str.size(); i++){
if(i % 3 == 0 && str[i] >= 'a' && str[i] <= 'z'){
string t = "";
t += (char)(str[i] - 32);
str.insert(i, t);
}
}
}
else if(a == 'R'){
string s = "";
for(int i = 0; i < str.size(); i++){
if(str[i] >= '0' && str[i] <= '9'){
s += str[i];
}
}
int l = 0, r = s.size() - 1;
while(l <= r){
char tmp = s[l];
s[l] = s[r];
s[r] = tmp;
l++, r--;
}
}
}
return 0;
}
题目链接:4007 字符加工厂