问题标题: 酷町堂:2868 字符格式转换2

0
0
已解决
崔皓轩
崔皓轩
新手光能
新手光能

题目链接: 酷町堂:2868

2868   字符格式转换2

经验值:1200

时间限制:1000毫秒

内存限制:128MB

题目描述 De**ion

给出一个字符串,全部由数字,字母,’#‘和’^ ‘组成。请将字符串中’#‘后面的一个小写字母变为大写字母,并且删除这个’#’;将’^ ‘后面的一个大写字母变为小写字母,并且删除这个’^ ‘。如果’#‘和’^ ‘后面的字符不满足这些条件,则只删除’#‘或’^’。输出最后字符串的结果。

输入描述 Input De**ion

一个字符串,由数字,字母,’#‘和’^'组成。

输出描述 Output De**ion

按要求转化后的字符串

样例输入 Sample Input

#a#b^A^B#123^123

样例输出 Sample Output

ABab123123

 

下面是我的代码哪错了

 

#include<bits/stdc++.h>
using namespace std;
string s; 
int main(){
    getline(cin,s);
    for(int i=0;i<s.size()-1;i++){
        if(s[i]=='#'&&s[i+1]>='a'&&s[i+1]<='z'){
            s[i+1]-=32;
        }
        if(s[i]=='^'&&s[i+1]>='A'&&s[i+1]<='Z'){
            s[i+1]+=32;
        }
        if(s[i]=='^'||s[i]=='#'){
            s.erase(i,1);
        }
    }
    cout<<s;
    return 0;
}

 


0
已采纳
彭志杰
彭志杰
初级天翼
初级天翼

发调试贴我回答你

0
茆国馨
茆国馨
初级守护
初级守护

啊啦啊啦

s字符串是从0到s.size()-1

删除完i要减1

我要回答