std::towupper - cppreference.com
提供: cppreference.com
<tbody> </tbody>
|
|
||
指定されたワイド文字を可能であれば大文字に変換します。
ch の値が wchar_t として表現可能でなくマクロ WEOF の値と等しくもなければ、動作は未定義です。
引数
戻り値
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