问题标题: 酷町堂:2854 字符串加密2

0
0
已解决
王文博
王文博
缔造者之神
缔造者之神

为什么会出现这种情况:

terminate called after th**wing an instance of 'std::out_of_range'

 what<>: basic_st**ng::**

This application has requested the Runtime to terminate it in an unusual way.

Please contact the application's support team for more information.

?????

翻译:

引发“std::out_of_range”实例后调用终止

basic_st**ng::** 这个应用程序请求运行时以一种不寻常的方式终止它。

有关更多**,请联系应用程序的支持团队。

???????????????

应用程序?

代码如下:

#pra**a GCC optimize(3)
#pra**a GCC target("avx")
#pra**a GCC optimize("Ofast")
#pra**a GCC optimize("inline")
#pra**a GCC optimize("-fg**e")
#pra**a GCC optimize("-fg**e-lm")
#pra**a GCC optimize("-fipa-sra")
#pra**a GCC optimize("-ftree-pre")
#pra**a GCC optimize("-ftree-vrp")
#pra**a GCC optimize("-fpeephole2")
#pra**a GCC optimize("-ffast-math")
#pra**a GCC optimize("-fsched-spec")
#pra**a GCC optimize("un**ll-loops")
#pra**a GCC optimize("-fali**-jumps")
#pra**a GCC optimize("-fali**-loops")
#pra**a GCC optimize("-fali**-labels")
#pra**a GCC optimize("-fdevirtualize")
#pra**a GCC optimize("-fcaller-saves")
#pra**a GCC optimize("-fc**ssjumping")
#pra**a GCC optimize("-fthread-jumps")
#pra**a GCC optimize("-fun**ll-loops")
#pra**a GCC optimize("-fwhole-p**gram")
#pra**a GCC optimize("-freorder-blocks")
#pra**a GCC optimize("-fschedule-insns")
#pra**a GCC optimize("inline-functions")
#pra**a GCC optimize("-ftree-tail-merge")
#pra**a GCC optimize("-fschedule-insns2")
#pra**a GCC optimize("-fst**ct-aliasing")
#pra**a GCC optimize("-fst**ct-overflow")
#pra**a GCC optimize("-fali**-functions")
#pra**a GCC optimize("-f**e-skip-blocks")
#pra**a GCC optimize("-f**e-follow-jumps")
#pra**a GCC optimize("-fsched-interblock")
#pra**a GCC optimize("-fpartial-inlining")
#pra**a GCC optimize("no-stack-p**tector")
#pra**a GCC optimize("-freorder-functions")
#pra**a GCC optimize("-findirect-inlining")
#pra**a GCC optimize("-fhoist-adjacent-loads")
#pra**a GCC optimize("-frerun-**e-after-loop")
#pra**a GCC optimize("inline-**all-functions")
#pra**a GCC optimize("-finline-**all-functions")
#pra**a GCC optimize("-ftree-switch-conversion")
#pra**a GCC optimize("-foptimize-sibling-calls")
#pra**a GCC optimize("-fexpensive-optimizations")
#pra**a GCC optimize("-funsafe-loop-optimizations")
#pra**a GCC optimize("inline-functions-called-once")
#pra**a GCC optimize("-fdelete-null-pointer-checks")
#pra**a GCC optimize(2)
#include <bits/stdc++.h>
using name** std;
st**ng a;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    getline(cin,a);
    for(int i=0;i<a.size();i++)
    {
        if(a[i]>='A'&&a[i]<='Z'&&a[i]%2==1)
        {
            a[i]-=32;
        }
    }
    for(int i=0;i<a.size();i++)
    {
        if(a[i]>='0'&&a[i]<='9')
        {
            a.erase(i,1);
            int b=a[i]-48;
            st**ng c=" "+a[i-1];
            c.erase(0,1);
            if(i-b>=0) a.**(i-b,c);
            else a.**(0,c);
        }
    }
}


 

 


0
已采纳
汪宇航
汪宇航
新手启示者
新手启示者

@王文博,因为'A'的ASCII码值为65,65-32=33,而33代表的是字符没错。真正原因是你字符串a的定义s t r i n g和头文件冲突,建议改成局部变量或将除了万能头的头文件删掉再试试

0
0
0
0
0
汪宇航
汪宇航
新手启示者
新手启示者

第一个循环的if里的a[i]-=32应改成a[i]+=32,因为小写字母的ASCII码比大写字母要大

0
我要回答