输入最后一个字符输出不对
查看原帖
输入最后一个字符输出不对
1190270
Lu888888楼主2023/11/18 03:05

为什么输入‘q’就直接向前6位到‘w’????

#include<bits/stdc++.h>
using namespace std;
string str,a;
int main()
{
    cin>>str;
    for (unsigned int i=0;i<str.size();i++)
    {
        if(islower(str[i]))
        {
            if((str[i]>='x')&&(str[i]<='z'))
                str[i] -= 55;                    //'x';'X';'A'     -32-26-3
            else
                str[i] -= 29;                    //'q';'Q';'T'     -32+3
        }
        if(isupper(str[i]))
        {
            if((str[i]>='X')&&(str[i]<='Z'))
                str[i] += 9;                    //'X';'x';'a'      +32-26+3 
            else
                str[i] += 35;                    //'A';'a';'d'      +32+3
        }
    }
    a.resize(str.size());
    for(int i=str.size()-1;i>=0;i--)
    {
        a[str.size()-1-i]=str[i];
    }
    cout<<a<<endl;
    return 0;
}
2023/11/18 03:05
加载中...