Как перевести символ в верхний регистр с

от admin

Как перевести символ в верхний регистр с

Стандартная библиотека С++ также предоставляет ряд встроенных функций для работы с символами. В основном они связанны с проверкой символов:

isupper(c) : проверяет, является ли c заглавной буквой, по умолчанию от «A» до «Z»

islower(c) : проверяет, является ли c буквой нижнего регистра, по умолчанию от ‘a’ до ‘z’

isalpha(c) : проверяет, является ли c алфавитным символом

isdigit(c) : проверяет, является ли c цифрой от ‘0’ до ‘9’

isxdigit(c) : проверяет, является ли c шестнадцатеричной цифрой, от ‘0’ до ‘9’, от ‘a’ до ‘f’ или от ‘A’ до ‘F’

isalnum(c) : проверяет, является ли c алфавитно-цифровым символом; аналогично isisalpha(c) || isdigit(c)

isspace(c) : проверяет, является ли c пробелом (‘ ‘), символом перевода строки (‘\n’), возвратом каретки (‘\r’), перевод страницы (‘\f’), горизонтальная (‘\t’) или вертикальная (‘\v’) табуляция

isblank(c) : проверяет, является ли c пробелом (‘ ‘) или символом табуляция (‘\t’)

ispunct(c) : проверяет, является ли c символом пунктуации (один из следующих: _ < >[ ] # ( ) < > % : ; ? * + — / ^ & |

! » brush:cpp;»> #include <iostream> int main() < unsigned char letter <'a'>; if (std::isupper(letter)) std::cout << «Uppercase letter» << std::endl; else if (std::islower(letter)) std::cout << «Lowercase letter» << std::endl; else // если не буквенный символ std::cout << «Undefined» << std::endl; >

Данные функции очень часто применяются при обработке строк. Рассмотрим прстейшую задачу — нам надо извлечь из некоторого текста (например, из строки «Phone number: +1(234)456-78-90» ) номер телефона:

Здесь проходим по всем символам текста и, если символ представляет цифру, то заносим его в строку phone.

Другая задача — нам надо сравнить две строки вне зависимости от регистра. С одной стороны, мы могли бы использовать простую операцию сравнения ==, которая также может сравнивать строки. Но если мы попытаемся сравнить две строки, в которых хотя бы один символ отличается по регистру, то они будут не равны:

Результат данной программы:

Чтобы организовать сравнение без учета регистра, мы могли бы переводить символы в верхний или нижний регистр и сравнивать их:

В данном случае сначала сравниваем длину строк, так как если длины не равны, то сами строки тоже не равны.

Далее в цикле проходим по всем символам обоих строк, переводим их в нижний регистр и сравниваем. Если хотя бы одна пара соответствующих символов не равна, то сбрасываем флаг равенства is_equal в false и выходим из цикла, поскольку строки в этом случае будут уже не равны, и дальше нет смысла сравнивать символы.

Преобразование в верхний и нижний регистр в C++

Класс C++ String предоставляет огромное количество встроенных функций для выполнения операций над входной строкой.

В этом руководстве мы углубимся в преобразование входной строки в нижний и верхний регистр в C++.

Преобразование строки в верхний регистр

Язык C++ String имеет встроенную функцию toupper() для преобразования входной строки в верхний регистр.

Ее синтаксис выглядит так:

Взгляните на следующий пример:

В приведенном выше фрагменте кода пакет cstring содержит функции, связанные со строками. Кроме того, там есть функция strlen(), которая используется для вычисления длины входной строки.

Метод putchar() необходим для отображения данных на экране/консоли.

Вывод будет выглядеть так:

Преобразование вводимого символа в верхний регистр

Преобразовать символы/строки в верхний/нижний регистр можно даже с учетом значений ASCII входных символов.

  • Значения ASCII для строчных букв (a-z): 97–122
  • Для букв верхнего регистра (A-Z): 65–92

Посмотрим на следующий пример:

Как видите, разница между ASCII-значениями для строчных и прописных букв составляет 32 (если от 97 отнять 6).

Следовательно, чтобы преобразовать входные данные в верхний регистр, нам нужно вычесть 32 из значения ASCII вводимого символа.

Преобразование строки в нижний регистр

Класс C++ String имеет встроенную функцию tolower() для преобразования входной строки в нижний регистр.

Ее синтаксис выглядит так:

К примеру, такой код:

Вернет такой результат:

Преобразование вводимого символа в нижний регистр

Посмотрите на этот пример:

Как вы уже знаете, разница между значениями верхнего и нижнего регистра составляет 32. Соответственно, нам нужно добавить 32 к значению ASCII входного символа, чтобы преобразовать его в нижний регистр.

Читать:
Кодек h 264 что это

Итоги

В этой статье мы рассмотрели преобразование символов и строк в нижний и верхний регистр в C++. В отношении методов ASCII важно отметить следующее: они просто преобразуют введенные символы в ASCII, а затем обратно. Если строка будет содержать числа, а не только буквы, вы получите неожиданный вывод.

Чтобы избежать подобных ошибок, вы можете либо обработать входные данные и убедиться, что введенные значения на самом деле являются символами, либо просто использовать функции toupper() и tolower().

Изменение регистра символов

Для изменения регистра символа предназначены следующие функции:

  • toupper() и _toupper_l() — возвращают код символа в верхнем регистре. Если преобразования регистра не было, то код символа возвращается без изменений. Прототипы функций:
  • tolower() и _tolower_l() — возвращают код символа в нижнем регистре. Если преобразования регистра не было, то код символа возвращается без изменений. Прототипы функций:
  • _strupr() — заменяет все буквы в C-строке str соответствующими прописными буквами. Функция возвращает указатель на строку str . Прототип функции:

Вместо функции _strupr() лучше использовать функцию _strupr_s() . Прототип функции:

В параметре strSize указывается размер строки. Функция возвращает значение 0 , если операция успешно выполнена, или код ошибки. Пример:

  • _strlwr() — заменяет все буквы в C-строке str соответствующими строчными буквами. Функция возвращает указатель на строку str . Прототип функции:

Вместо функции _strlwr() лучше использовать функцию _strlwr_s() . Прототип функции:

В параметре strSize указывается размер строки. Функция возвращает значение 0 , если операция успешно выполнена, или код ошибки. Пример:

Учебник C++ (Qt Creator и MinGW)
Учебник C++ (Qt Creator и MinGW) в формате PDF

Помощь сайту

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

Функция toupper() в C++

В этом руководстве мы узнаем о функции toupper() в С++ с помощью примеров.

Функция toupper() в C++ преобразует заданный символ в верхний регистр. Она определена в заголовочном файле cctype.

Пример

Синтаксис

Синтаксис функции toupper():

Параметры

Функция toupper() принимает следующий параметр:

  • ch – символ, приведенный к типу int или EOF.

Возвращаемое значение

  • Для алфавитов – ASCII-код версии ch в верхнем регистре.
  • Для не-алфавитов – код ASCII ch

Прототип функции toupper(), как определено в заголовочном файле cctype:

Как мы видим, символьный аргумент ch преобразуется в int, т.е. его код ASCII.

Поскольку тип возвращаемого значения также является int, toupper() возвращает код ASCII преобразованного символа.

Поведение toupper() не определено, если:

  • значение ch не может быть представлено как unsigned char, или
  • значение ch не равно EOF.

Пример 1: C ++ toupper()

Здесь мы преобразовали символы c1 , c2 и c3 в верхний регистр с помощью toupper().

Обратите внимание на код для печати вывода:

Здесь мы преобразовали возвращаемое значение toupper (c1) в char, используя код (char) toupper (c1).

Также обратите внимание, что изначально:

  • c2 = ‘A’, поэтому toupper() возвращает то же значение.
  • c3 = ‘9’, поэтому toupper() возвращает то же значение.

Пример 2: С++ toupper() без преобразования типа

Здесь мы преобразовали символы c1 , c2 и c3 в верхний регистр с помощью toupper().

Однако мы не преобразовали возвращаемые значения toupper() в char. Итак, эта программа печатает значения ASCII преобразованных символов, а именно:

  • 65 – код ASCII ‘A’
  • 66 – код ASCII ‘B’
  • 57 – код ASCII ‘9’

Пример 3: со строкой

Здесь мы создали строку на языке C str со значением «Джон из США.».

Затем мы преобразовали все символы str в верхний регистр с помощью цикла for. Цикл выполняется от i = 0 до i = strlen (str) – 1.

Другими словами, цикл проходит по всей строке, поскольку strlen() дает длину str .

На каждой итерации цикла мы преобразуем строковый элемент str [i] (единственный символ строки) в верхний регистр и сохраняем его в переменной char ch .

Затем мы печатаем ch внутри цикла. К концу цикла вся строка была напечатана в верхнем регистре.

Related Posts