std::towctrans
| Defined in header <cwctype> | ||
|---|---|---|
| std::wint_t towctrans( std::wint_t wc, std::wctrans_t desc ); | 
Maps the wide character wc using the current C locale's LC_CTYPE mapping category identified by desc.
If the value of ch is neither representable as a wchar_t nor equal to the value of the macro WEOF, the behavior is undefined.
Parameters
| ch | - | the wide character to map | 
| desc | - | the LC_CTYPE mapping, obtained from a call to std::wctrans | 
Return value
The mapped value of ch using the mapping identified by desc in LC_CTYPE facet of the current C locale.
Example
The following example demonstrates katakana to hiragana character mapping.
#include <clocale>
#include <cwctype>
#include <iostream>
#include <algorithm>
 
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";
}Output:
katakana characters ヒラガナ are ひらがな in hiragana
See also
| looks up a character mapping category in the current C locale (function) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/string/wide/towctrans