Spec-Zone.ru › C++

std::towctrans

Определено в заголовочном файле <cwctype>
std::wint_t towctrans( std::wint_t ch, std::wctrans_t desc );

Преобразует широкий символ 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

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/wide/towctrans

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API