Namespaces
Variants

std:: towupper

From cppreference.net
Определено в заголовке <cwctype>

Преобразует заданный широкий символ в верхний регистр, если это возможно.

Если значение 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 локали
(шаблон функции)
преобразует символ в верхний регистр
(функция)