std:: towupper
|
ヘッダーで定義
<cwctype>
|
||
|
std::
wint_t
towupper
(
std::
wint_t
ch
)
;
|
||
指定されたワイド文字を可能であれば大文字に変換します。
ch の値が wchar_t として表現可能でなく、かつマクロ WEOF の値とも等しくない場合、動作は未定義です。
目次 |
パラメータ
| ch | - | 変換対象のワイド文字 |
戻り値
現在のCロケールに大文字バージョンが登録されていない場合は、 ch の大文字バージョン、または変更されていない ch を返します。
注記
この関数が実行できるのは1:1の文字マッピングのみです。例えば、
'ß'
の大文字形式は(一部の例外を除き)2文字の文字列
"SS"
であり、これは
std::towupper
では取得できません。
ISO 30112 は、このマッピングに含まれるUnicode文字のペアを指定しています。
例
ラテン文字の 'ſ' (U+017F) は、 'S' (U+0053) の代替小文字形です。
#include <clocale> #include <cwctype> #include <iostream> 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(" << static_cast<std::wint_t>(c) << ") = " << std::towupper(c) << '\n'; std::setlocale(LC_ALL, "en_US.utf8"); std::cout << "in Unicode locale, towupper(" << static_cast<std::wint_t>(c) << ") = " << std::towupper(c) << '\n'; }
出力:
in the default locale, towupper(0x17f) = 0x17f in Unicode locale, towupper(0x17f) = 0x53
関連項目
|
ワイド文字を小文字に変換する
(関数) |
|
|
ロケールのctypeファセットを使用して文字を大文字に変換する
(関数テンプレート) |
|
|
文字を大文字に変換する
(関数) |
|
|
Cドキュメント
for
towupper
|
|