为什么我的C代码在命令提示符下始终返回0?

时间:2019-02-25 04:19:03

标签: c char command-prompt

大写字母应该变成小写,小写到大写,数字加1,并且9变成0。当包含标准输入时,我的代码有效,但是每次按Enter键,命令行仍返回0。 / p>

#include <stdio.h>
int main()
{
    char c;
    int i;
    for (i=0;i<=2132;i++)
    {
        c = getchar();
        if(c>='a' && c<='z')
        {
            c-=32;
        }
        else if(c>='A' && c<='Z')
        {
            c+=32;
        }
        else if(c>='0' && c<'9')
        {
            c++;
        }

        else if(c='9')
        {
            c-=9;
        }
    putchar(c);
    }
    return 0;
}

1 个答案:

答案 0 :(得分:2)

错误发生在第else if(c='9')行。请注意,在所有其他情况下,您都在使用比较,而在这里,您将c分配给'9'。区别在于您使用的是=而不是==,因此,如果c是数字9,则所有四个if / else if语句都会失败。

使用(c == '9')检查字符c是否等于数字9。