if(x<'a' && x>'z') 这条件能满足么???
从第三个if开始,都要改成else if才行。否则前面的if中修改了x的值,修改后的x会满足后面的if条件,导致x再次被修改
你的代码应该用if else if ,你只用if语句的话,上面的if可能会对下面的if语句产生影响。
供参考:
#include<stdio.h>
int main()
{
char a[256];
int i = 0;
while ((a[i] = getchar()) && a[i] != '\n')
{
if (a[i] >= 'A' && a[i] <= 'Z')
a[i] = (a[i] - 'A' + 3) % 26 + 'A';
else if (a[i] >= 'a' && a[i] <= 'z')
a[i] = (a[i] - 'a' + 3) % 26 + 'a';
i++;
}
a[i] = '\0';
printf("%s\n", a);
return 0;
}