ロケール
ロケールとは、プログラムをカスタマイズするために使用できる国または地域と言語を表します。 ロケールに依存するカテゴリとしては、日付や通貨の値の表示形式などがあります。 詳細については、「ロケールのカテゴリ」を参照してください。
現在のプログラムまたはスレッドのロケール情報の一部またはすべてを変更または照会するには、setlocale 関数を _l のサフィックスなしで使用します。 _l サフィックス付きの関数を指定すると、特定の関数の実行中にのみ渡されたロケール パラメーターをロケール情報として使用します。 _l サフィックス付きの関数を使用する場合のロケールを作成するには、_create_locale を使用します。 このロケールを解放するには、_free_locale を使用します。 現在のロケールを取得するには、_get_current_locale を使用します。
各スレッドで独自のロケールを設定するか、プログラム内のすべてのスレッドで同じロケールを共有するかどうかを制御するには、_configthreadlocale を使用します。 詳細については、「Locales and Code Pages (ロケールとコード ページ)」を参照してください。
次の表に示す関数のセキュリティを強化したバージョンは、_s ("secure") というサフィックスによって表されます。 詳細については、「CRT のセキュリティ機能」を参照してください。
ロケールに依存するルーチン
ルーチン |
使用方法 |
setlocale カテゴリの設定の依存関係 |
---|---|---|
文字を浮動小数点型の値に変換 |
LC_NUMERIC |
|
文字を整数型の値に変換 |
LC_NUMERIC |
|
文字を 64 ビットの整数型の値に変換 |
LC_NUMERIC |
|
文字を long 型の値に変換 |
LC_NUMERIC |
|
文字を double-long 型の値に変換 |
LC_NUMERIC |
|
特定の状態で指定した整数をテストします。 |
LC_CTYPE |
|
先行バイトのテスト |
LC_CTYPE |
|
数量を書式設定するために適切な値を読み取る |
LC_MONETARY, LC_NUMERIC |
|
現在のロケールのマルチバイト文字の最大長さのバイト数 (STDLIB.H で定義されているマクロ) |
LC_CTYPE |
|
マルチバイト文字の 1 文字をコピー |
LC_CTYPE |
|
マルチバイト文字のバイト数を検証して返す |
LC_CTYPE |
|
マルチバイト文字列の場合、文字列内の各文字を検証し、文字列の長さを返す |
LC_CTYPE |
|
マルチバイト文字のシーケンスを、対応するワイド文字のシーケンスに変換 |
LC_CTYPE |
|
マルチバイト文字を対応するワイド文字に変換 |
LC_CTYPE |
|
printf 関数 |
書式付き出力を書き出す |
LC_NUMERIC (小数点文字の出力を決定) |
scanf 関数 |
書式付き入力を読み取る |
LC_NUMERIC (基数文字が認識されます) |
プログラムのロケールを選択する |
該当なし |
|
2 つの文字列の文字を比較する |
LC_COLLATE |
|
大文字小文字に関係なく、2 つの文字列を比較する |
LC_CTYPE |
|
_stricoll、_wcsicoll、_mbsicoll、_stricoll_l、_wcsicoll_l、_mbsicoll_l |
2 つの文字列の文字を比較する (大文字小文字を区別しない) |
LC_COLLATE |
_strncoll、_wcsncoll、_mbsncoll、_strncoll_l、_wcsncoll_l、_mbsncoll_l |
2 つの文字列の先頭の n 文字を比較する |
LC_COLLATE |
_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l |
大文字小文字に関係なく、2 つの文字列の文字を比較する。 |
LC_CTYPE |
_strnicoll、_wcsnicoll、_mbsnicoll、_strnicoll_l、_wcsnicoll_l、_mbsnicoll_l |
2 つの文字列の先頭の n 文字を比較する (大文字小文字を区別しない) |
LC_COLLATE |
指定された format 引数に従って日付と時刻の値を書式設定する |
LC_TIME |
|
_strlwr、_wcslwr、_mbslwr、_strlwr_l、_wcslwr_l、_mbslwr_l,_strlwr_s、_strlwr_s_l、_mbslwr_s、_mbslwr_s_l、_wcslwr_s、_wcslwr_s_l |
指定した文字列内の大文字をその位置で小文字に変換する |
LC_CTYPE |
文字列を double 型の値に変換する |
LC_NUMERIC (基数文字が認識されます) |
|
long値に変換する文字列 |
LC_NUMERIC (基数文字が認識されます) |
|
文字列を unsigned long 型の値に変換する |
LC_NUMERIC (基数文字が認識されます) |
|
_strupr、_strupr_l、_mbsupr、_mbsupr_l、_wcsupr_l、_wcsupr,_strupr_s、_strupr_s_l、_mbsupr_s、_mbsupr_s_l、_wcsupr_s、_wcsupr_s_l |
文字列内の小文字をその位置で大文字に変換する |
LC_CTYPE |
ロケールに従って文字列を照合形式に変換する |
LC_COLLATE |
|
tolower、_tolower、towlower、_tolower_l、_towlower_l,_mbctolower、_mbctolower_l、_mbctoupper、_mbctoupper_l |
指定した文字を対応する小文字に変換する |
LC_CTYPE |
toupper、_toupper、towupper、_toupper_l、_towupper_l,_mbctolower、_mbctolower_l、_mbctoupper、_mbctoupper_l |
指定した文字を対応する大文字に変換する |
LC_CTYPE |
ワイド文字のシーケンスを、対応するマルチバイト文字のシーケンスに変換する |
LC_CTYPE |
|
ワイド文字を対応するマルチバイト文字に変換する |
LC_CTYPE |
注意
マルチバイトのルーチンの場合、マルチバイトのコード ページは setlocale で設定されたロケールと同じである必要があります。_MB_CP_LOCALE 引数を指定した _setmbcp では、マルチバイトのコード ページを setlocale のコード ページと同じにします。