__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
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;
}