名前空間
変種
操作

std::towupper

提供: cppreference.com
< cpp‎ | string‎ | wide
ヘッダ <cwctype> で定義
std::wint_t towupper( std::wint_t ch );

指定されたワイド文字を可能であれば大文字に変換します。

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

目次

[編集] 引数

ch - 変換されるワイド文字

[編集] 戻り値

ch の大文字バージョン、または現在の C のロケールに大文字バージョンがなければ無変更の ch

[編集] ノート

1:1 の文字マッピングのみがこの関数で行うことができます。 例えば、 'ß' の大文字形は (いくつか例外はあるものの) 2文字の文字列 "SS" であり、 std::towupper によって取得することはできません。

ISO 30112 はこのマッピングに含まれる Unicode 文字の組を規定しています。

[編集]

ラテン文字 'ſ' (U+017F) は 'S' (U+0053) の代替小文字形式です。

#include <iostream>
#include <cwctype>
#include <clocale>
 
int main()
{
    wchar_t c = L'\u017f'; // Latin small letter Long S ('ſ')
 
    std::cout << std::hex << std::showbase;
    std::cout << "in the default locale, towupper(" << (std::wint_t)c << ") = "
              << std::towupper(c) << '\n';
    std::setlocale(LC_ALL, "en_US.utf8");
    std::cout << "in Unicode locale, towupper(" << (std::wint_t)c << ") = "
              << std::towupper(c) << '\n';
}

出力:

in the default locale, towupper(0x17f) = 0x17f
in Unicode locale, towupper(0x17f) = 0x53

[編集] 関連項目

ワイド文字を小文字に変換します
(関数) [edit]
指定されたロケールの ctype ファセットを使用して文字を大文字に変換します
(関数テンプレート) [edit]
文字を大文字に変換します
(関数) [edit]