Namespaces
Variants

std:: towctrans

From cppreference.net
Определено в заголовочном файле <cwctype>

Отображает широкий символ ch используя категорию отображения LC_CTYPE текущей локали C, идентифицируемую с помощью desc .

Если значение ch не может быть представлено как wchar_t и не равно значению макроса WEOF , поведение не определено.

Содержание

Параметры

ch - широкий символ для отображения
desc - отображение LC_CTYPE , полученное вызовом std::wctrans

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

Отображённое значение ch с использованием отображения, идентифицированного desc в категории LC_CTYPE фасета текущей локали C.

Пример

Следующий пример демонстрирует преобразование символов катаканы в хирагану.

#include <algorithm>
#include <clocale>
#include <cwctype>
#include <iostream>
std::wstring tohira(std::wstring str)
{
    std::transform(str.begin(), str.end(), str.begin(), [](wchar_t c)
    {
         return std::towctrans(c, std::wctrans("tojhira"));
    });
    return str;
}
int main()
{
    std::setlocale(LC_ALL, "ja_JP.UTF-8");
    std::wstring kana = L"ヒラガナ";
    std::wcout << "katakana characters " << kana
               << " are " << tohira(kana) << " in hiragana\n";
}

Вывод:

katakana characters ヒラガナ are ひらがな in hiragana

Смотрите также

ищет категорию преобразования символов в текущей локали C
(функция)