std:: towupper
|
Определено в заголовке
<cwctype>
|
||
|
std::
wint_t
towupper
(
std::
wint_t
ch
)
;
|
||
Преобразует заданный широкий символ в верхний регистр, если это возможно.
Если значение ch не представимо как wchar_t и не равно значению макроса WEOF , поведение не определено.
Содержание |
Параметры
| ch | - | широкий символ для преобразования |
Возвращаемое значение
Верхний регистр символа ch или неизмененный ch если в текущей локали C не указана версия в верхнем регистре.
Примечания
Только однозначное преобразование символов может быть выполнено этой функцией, например, заглавная форма
'ß'
представляет собой (с некоторыми исключениями) двухсимвольную строку
"SS"
, которая не может быть получена с помощью
std::towupper
.
ISO 30112 определяет, какие пары символов Юникода включены в это отображение.
Пример
Латинская буква 'ſ' (U+017F) является альтернативной строчной формой 'S' (U+0053).
#include <clocale> #include <cwctype> #include <iostream> int main() { wchar_t c = L'\u017f'; // Latin small letter Long S ('ſ') std::cout << std::hex << std::showbase; std::cout << "in the default locale, towupper(" << static_cast<std::wint_t>(c) << ") = " << std::towupper(c) << '\n'; std::setlocale(LC_ALL, "en_US.utf8"); std::cout << "in Unicode locale, towupper(" << static_cast<std::wint_t>(c) << ") = " << std::towupper(c) << '\n'; }
Вывод:
in the default locale, towupper(0x17f) = 0x17f in Unicode locale, towupper(0x17f) = 0x53
Смотрите также
|
преобразует широкий символ в нижний регистр
(функция) |
|
|
преобразует символ в верхний регистр с использованием фасета ctype локали
(шаблон функции) |
|
|
преобразует символ в верхний регистр
(функция) |
|
|
Документация C
для
towupper
|
|