次の方法で共有


Locale

ロケールとは、プログラムをカスタマイズするために使用できる国または地域と言語を表します。 ロケールに依存するカテゴリとしては、日付や通貨の値の表示形式などがあります。 詳細については、「 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
isisw ルーチン 特定の状態で指定した整数をテストします。 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
_mbclenmblen_mblen_l マルチバイト文字のバイト数を検証して返す LC_CTYPE
strlenwcslen_mbslen_mbslen_l_mbstrlen_mbstrlen_l マルチバイト文字列の場合、文字列内の各文字を検証し、文字列の長さを返す LC_CTYPE
mbstowcs_mbstowcs_lmbstowcs_s_mbstowcs_s_l マルチバイト文字のシーケンスを、対応するワイド文字のシーケンスに変換 LC_CTYPE
mbtowc, _mbtowc_l マルチバイト文字を対応するワイド文字に変換 LC_CTYPE
printf 関数 書式付き出力を書き出す LC_NUMERIC (小数点文字の出力を決定)
scanf 関数 書式付き入力を読み取る LC_NUMERIC (基数文字が認識されます)
setlocale, _wsetlocale プログラムのロケールを選択する 適用なし
strcollwcscoll_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
strftimewcsftime_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_lwcstod_wcstod_l 文字列を double 型の値に変換する LC_NUMERIC (基数文字が認識されます)
strtolwcstol_strtol_l_wcstol_l 文字列を long 型の値に変換する LC_NUMERIC (基数文字が認識されます)
strtoul_strtoul_lwcstoul_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
strxfrmwcsxfrm_strxfrm_l_wcsxfrm_l ロケールに従って文字列を照合形式に変換する LC_COLLATE
tolower_tolowertowlower_tolower_l_towlower_l_mbctolower_mbctolower_l_mbctoupper_mbctoupper_l 指定した文字を対応する小文字に変換する LC_CTYPE
toupper_touppertowupper_toupper_l_towupper_l_mbctolower_mbctolower_l_mbctoupper_mbctoupper_l 指定した文字を対応する大文字に変換する LC_CTYPE
wcstombs_wcstombs_lwcstombs_s_wcstombs_s_l ワイド文字のシーケンスを、対応するマルチバイト文字のシーケンスに変換する LC_CTYPE
wctomb_wctomb_lwctomb_s_wctomb_s_l ワイド文字を対応するマルチバイト文字に変換する LC_CTYPE

Note

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

関連項目

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