std::toupper(std::locale)
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <locale> で定義
|
||
template< class charT > charT toupper( charT ch, const locale& loc ); |
||
可能であれば、指定されたロケールの std::ctype ファセットによって規定される変換ルールを使用して、文字 ch を大文字に変換します。
引数
| ch | - | 文字 |
| loc | - | ロケール |
戻り値
ロケールにリストされていれば、 ch の大文字形を返します。 そうでなければ、 ch を変更せずに返します。
ノート
1:1 の文字マッピングのみがこの関数によって行うことができます。 例えば、 'ß' の大文字形は (いくつかの例外はありますが) 2文字の文字列 "SS" であり、これは std::toupper によって取得することはできません。
実装例
template< class charT >
charT toupper( charT ch, const std::locale& loc ) {
return std::use_facet<std::ctype<charT>>(loc).toupper(ch);
}
|
例
Run this code
#include <iostream>
#include <cwctype>
#include <locale>
int main()
{
wchar_t c = L'\u017f'; // Latin small letter Long S ('ſ')
std::cout << std::hex << std::showbase;
std::cout << "in the default locale, toupper(" << (std::wint_t)c << ") = "
<< std::toupper(c, std::locale()) << '\n';
std::cout << "in Unicode locale, toupper(" << (std::wint_t)c << ") = "
<< std::toupper(c, std::locale("en_US.utf8")) << '\n';
}
出力:
in the default locale, toupper(0x17f) = 0x17f
in Unicode locale, toupper(0x17f) = 0x53
関連項目
| 指定されたロケールの ctype ファセットを使用して文字を小文字に変換します (関数テンプレート) | |
| 文字を大文字に変換します (関数) | |
| ワイド文字を大文字に変換します (関数) |