Создайте свой собственный 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')