#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
char a[90]={0};
cin.getline(a,90);
for(int i=0;a[i];i++){
if(a[i]>='A'&&a[i]<='Y'){
a[i]+=1;
}
if(a[i]=='Z'){
a[i]='A';
}
if(a[i]>='a'&&a[i]<='y'){
a[i]+=1;
}
if(a[i]=='z'){
a[i]='a';
}
}
cout<<a;
return 0;
}
为什么Y会变成A,y会变成a
你需要先判断字符 'Z' 喔,因为如果先判断 'Y',它会被改成'Z','Z'进而被改成了'A',小写同理。
改法:
因为循环里面,对每个A至Y、a至y字符的ASCII值+1,因此如果原来字符是Y或y,就变成了Z或z,然后两个if判断把字符Z和z改为A和a,所以最终结果就是Y变成A,y变成a,Z变成A,z变成a,其他字母后移一位。