std::towlower — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
||
Преобразует заданный широкий символ в нижний регистр, если это возможно.
Если значение ch не может быть представлено как wchar_t и не равно значению макроса WEOF, поведение неопределено.
Параметры
| ch | — | широкий символ для преобразования |
Возвращаемое значение
Версия ch в нижнем регистре или неизменённая версия ch, если в текущей локали C не указана версия в нижнем регистре.
Примечание
С помощью этой функции можно выполнить только сопоставление символов 1:1, например, греческая прописная буква 'Σ' имеет две строчные формы, в зависимости от позиции в слове: 'σ' и 'ς'. В этом случае вызов std::towlower не может быть использован для получения правильной строчной буквы.
ISO 30112 определяет, какие пары символов Юникода включены в это сопоставление.
Пример
#include <clocale> #include <cwctype> #include <iostream> int main() { wchar_t c = L'\u0190'; // Латинская заглавная буква E ('Ɛ') std::cout << std::hex << std::showbase; std::cout << "в локали по умолчанию, towlower(" << static_cast<std::wint_t>(c) << ") = " << std::towlower(c) << '\n'; std::setlocale(LC_ALL, "en_US.utf8"); std::cout << "в локали Юникода, towlower(" << static_cast<std::wint_t>(c) << ") = " << std::towlower(c) << '\n'; }
Вывод:
в локали по умолчанию, towlower(0x190) = 0x190 в локали Юникода, towlower(0x190) = 0x25b