ロケール (地域設定)

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

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

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

次の表に示す関数のセキュリティを強化したバージョンは、_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、isw ルーチン 特定の状態で指定した整数をテストします。 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

注

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

関連項目

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