字符转换加密C语言。

img

img


输入字母w,为什么输出不是z,而是c,如何修改才能输入w输出c

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