Locale

ロケールとは、プログラムをカスタマイズするために使用できる国または地域と言語を表します。 ロケールに依存するカテゴリとしては、日付や通貨の値の表示形式などがあります。 詳細については、「ロケールのカテゴリ」を参照してください。

現在のプログラムまたはスレッドのロケール情報の一部またはすべてを変更または照会するには、setlocale 関数を _l のサフィックスなしで使用します。 _l サフィックス付きの関数を指定すると、特定の関数の実行中にのみ渡されたロケール パラメーターをロケール情報として使用します。 _l サフィックス付きの関数を使用する場合のロケールを作成するには、_create_locale を使用します。 このロケールを解放するには、_free_locale を使用します。 現在のロケールを取得するには、_get_current_locale を使用します。

各スレッドで独自のロケールを設定するか、プログラム内のすべてのスレッドで同じロケールを共有するかどうかを制御するには、_configthreadlocale を使用します。 詳細については、「ロケールとコード ページ」を参照してください。

次の表に示す関数のセキュリティを強化したバージョンは、_s ("secure") というサフィックスによって表されます。 詳細については、「CRT のセキュリティ機能」を参照してください。

ロケールに依存するルーチン

ルーチンによって返される値 使用 setlocale カテゴリの設定の依存関係
atof, _atof_l, _wtof, _wtof_l 文字を浮動小数点型の値に変換 LC_NUMERIC
atoi, _atoi_l, _wtoi, _wtoi_l 文字を整数型の値に変換 LC_NUMERIC
_atoi64, _atoi64_l, _wtoi64, _wtoi64_l 文字を 64 ビットの整数型の値に変換 LC_NUMERIC
atol, _atol_l, _wtol, _wtol_l 文字を long 型の値に変換 LC_NUMERIC
_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt, _atoflt_l 文字を double-long 型の値に変換 LC_NUMERIC
is ルーチン 特定の状態で指定した整数をテストします。 LC_CTYPE
isleadbyte, _isleadbyte_l 先行バイトのテスト LC_CTYPE
localeconv 数量を書式設定するために適切な値を読み取る LC_MONETARY, LC_NUMERIC
MB_CUR_MAX 現在のロケールのマルチバイト文字の最大長さのバイト数 (STDLIB.H で定義されているマクロ) LC_CTYPE
_mbccpy, _mbccpy_l,_mbccpy_s, _mbccpy_s_l マルチバイト文字の 1 文字をコピー LC_CTYPE
_mbclen, mblen, _mblen_l マルチバイト文字のバイト数を検証して返す LC_CTYPE
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l マルチバイト文字列の場合、文字列内の各文字を検証し、文字列の長さを返す LC_CTYPE
mbstowcs, _mbstowcs_l,mbstowcs_s, _mbstowcs_s_l マルチバイト文字のシーケンスを、対応するワイド文字のシーケンスに変換 LC_CTYPE
mbtowc, _mbtowc_l マルチバイト文字を対応するワイド文字に変換 LC_CTYPE
printf 関数 書式付き出力を書き出す LC_NUMERIC (小数点文字の出力を決定)
scanf 関数 書式付き入力を読み取る LC_NUMERIC (基数文字が認識されます)
setlocale, _wsetlocale プログラムのロケールを選択する 適用できません
strcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l 2 つの文字列の文字を比較する LC_COLLATE
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l 大文字小文字に関係なく、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
strftime, wcsftime, _strftime_l, _wcsftime_l 指定された 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
strtod, _strtod_l, wcstod, _wcstod_l 文字列を double 型の値に変換する LC_NUMERIC (基数文字が認識されます)
strtol, wcstol, _strtol_l, _wcstol_l 文字列を long 型の値に変換する LC_NUMERIC (基数文字が認識されます)
strtoul, _strtoul_l, wcstoul, _wcstoul_l 文字列を 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
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l ロケールに従って文字列を照合形式に変換する 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
wcstombs, _wcstombs_l,wcstombs_s, _wcstombs_s_l ワイド文字のシーケンスを、対応するマルチバイト文字のシーケンスに変換する LC_CTYPE
wctomb, _wctomb_l,wctomb_s, _wctomb_s_l ワイド文字を対応するマルチバイト文字に変換する LC_CTYPE

Note

マルチバイトのルーチンの場合、マルチバイトのコード ページは setlocale で設定されたロケールと同じである必要があります。 _MB_CP_LOCALE 引数を指定した _setmbcp では、マルチバイトのコード ページを setlocale のコード ページと同じにします。

関連項目

国際化
カテゴリ別ユニバーサル C ランタイム ルーチン