Почему мой код C продолжает возвращать 0 в командной строке? - PullRequest
0 голосов
/ 25 февраля 2019

Предполагается, что заглавные буквы становятся строчными, строчные - заглавными, цифры увеличиваются на 1, а 9 становится 0. Когда включен стандартный ввод, мой код работает, но командная строка продолжает возвращать 0 каждый раз, когда я нажимаю клавишу ввода

#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 голосов
/ 25 февраля 2019

Ошибка произошла в строке else if(c='9').

Обратите внимание, что во всех других случаях вы используете сравнение, тогда как здесь вы присваиваете c '9'.Разница в том, что вы использовали = вместо ==, и, следовательно, если c равно цифра девять, все четыре оператора if / else, если значение равно false.

Use (c == '9'), чтобы проверить, равен ли символ c цифре девять.

...