60分求调

P1914 小书童——凯撒密码

__F__ @ 2024-07-12 11:22:30

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    cin.ignore();
    char a[1010];
    cin.getline(a,1010);
    for(int i=0;i<=strlen(a);i++){
        if(a[i]>='a'&&a[i]<='z'){
            a[i]+=n;
            if(a[i]>'z'){
                a[i]-=26;
            }
        }
    }
    for(int i=0;i<=strlen(a);i++){
        cout<<a[i];
    }
}

by VoId_D_C @ 2024-07-12 11:35:43

众所周知字符串是玄学,所以不要用奇怪操作

不要直接加整数(原因我也不知道,测了一下会乱码

核心代码建议改成这样:

a[i]=(a[i]-'a'+n)%26+'a';

求关qwq


by Expector_Hutch @ 2024-07-12 11:40:58

玄学问题,建议重构


by zzh0623 @ 2024-07-18 18:19:57

include<bits/stdc++.h>

using namespace std; int n; string s; int main() { cin>>n>>s;

for(int i=0;i<s.size();i++)
{
    if(s[i]+n>'z')
        cout<<s[i]+n-26;
    else    
        s[i]+=n;
}
cout<<s<<endl;
return 0;

}


|