Создайте свой собственный toUpper и toLower в C

Когда я запускаю и компилирую код, я получаю ошибки, что A и Z, а также a и c не определены, как я могу это исправить?

char toUpper ( char c ) {

    if ( C >= a + c <= z) 
        -32;
    return c;

} // ends toUpper

char toLower ( char c ) {

    if ( c >= A + c <= Z ) 
        +32;

} // ends toUpper

3 ответа

Заключите буквы в одинарные кавычки, чтобы сформировать символьные литералы, например так:

'a'

Краткое описание:

  • Вам нужны кавычки вокруг констант персонажа.
  • Ваша функция должна возвращать символ верхнего или нижнего регистра.
  • При тестировании двух условий используйте && для "логического и" и || для "логического или"

Логично и верно, если ОБА стороны && правда. Логично или верно, если ОДНА сторона || правда.

Я не "редактирую ваш код, чтобы исправить это", потому что я почти уверен, что вы учитесь писать на C, и если бы я просто набрал здесь "правильный код", вы просто скопировали бы его и вставили в свой код, и учиться абсолютно ничего.

В вашем коде есть 2 основные проблемы.

Во-первых, вы используете a вместо 'a', Когда компилятор видит a он пытается интерпретировать его как идентификатор. Это означает, что он должен ссылаться на аргумент, локальное имя, имя функции и т. Д. Цель вашего кода - обозначить символ a (первая буква алфавита). Помещение одинарных кавычек вокруг одной буквы приводит к тому, что компилятор интерпретирует его как символьный литерал.

Вторая проблема заключается в том, что ваше условное утверждение неверно. Вы пытаетесь увидеть, если C и больше или равно 'a' и меньше или равно 'z', Этот тип логического сравнения выполняется с && оператор в C. Это верно, только если левая и правая стороны && тоже правда

if ( C >= 'a' && c <= 'z') 
Другие вопросы по тегам