我想让输入的字母用其在26个英文字母中的其后三个字母代替该字母输入其它字符时不变但是我这个程序为啥再输入数字的时候也往后输出了三位我明明用if限制了有没有人可以教一下谢谢
#include
int main()
{
char st,x;
int i;
while((st=getchar())!='\n'){
if('a'<=st<='z'||'A'<=st<='Z'){
for(i=1;i<=3;i++){
x=st+i;
putchar(x);
}
}else{
putchar(st);
}
}
}
因为这个语法错误 改成 if((st>='a'&&st<='z')||(st>='A'&&st<='Z')) ,按照你这样写是 恒成立的,所以会走if里边,输出对应的后三位
if('a'<=st<='z'||'A'<=st<='Z')
改为
if(st>='a' && st<='z' || st>='A' && st<='Z')
你的if条件语句写错了,改成这样。if(('a'<=st&&st<='z')||'(A'<=st&&st<='Z')){