名前空間
変種
操作

std::towctrans

提供: cppreference.com
< cpp‎ | string‎ | wide
ヘッダ <cwctype> で定義
std::wint_t towctrans( std::wint_t wc, std::wctrans_t desc );

desc の表す現在の C のロケールの LC_CTYPE マッピングカテゴリを使用してワイド文字 wc をマップします。

ch の値が wchar_t として表現可能でなくマクロ WEOF の値と等しくもなければ、動作は未定義です。

目次

[編集] 引数

ch - マップするワイド文字
desc - std::wctrans の呼び出しから取得した LC_CTYPE マッピング

[編集] 戻り値

現在の C のロケールの LC_CTYPE ファセットの desc で表されるマッピングを使用した ch のマップされた値。

[編集]

以下の例は片仮名から平仮名への文字マッピングをデモンストレーションします。

#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";
}

出力:

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

[編集] 関連項目

現在のCのロケールで文字マッピングカテゴリを検索します
(関数) [edit]