ロケールLocale

ロケールとは、プログラムをカスタマイズするために使用できる国または地域と言語を表します。Locale refers to country/region and language settings that you can use to customize your program. ロケールに依存するカテゴリとしては、日付や通貨の値の表示形式などがあります。Some locale-dependent categories include the display formats for dates and monetary values. 詳細については、「ロケールのカテゴリ」を参照してください。For more information, see Locale Categories.

現在のプログラムまたはスレッドのロケール情報の一部またはすべてを変更または照会するには、setlocale 関数を _l のサフィックスなしで使用します。Use the setlocale function to change or query some or all of the current program or thread locale information while using functions without the _l suffix. _l サフィックス付きの関数を指定すると、特定の関数の実行中にのみ渡されたロケール パラメーターをロケール情報として使用します。The functions with the _l suffix will use the locale parameter passed in for their locale information during the execution of that specific function only. _l サフィックス付きの関数を使用する場合のロケールを作成するには、_create_locale を使用します。To create a locale for use with a function with a _l suffix, use _create_locale. このロケールを解放するには、_free_locale を使用します。To free this locale, use _free_locale. 現在のロケールを取得するには、_get_current_locale を使用します。To get the current locale, use _get_current_locale.

各スレッドで独自のロケールを設定するか、プログラム内のすべてのスレッドで同じロケールを共有するかどうかを制御するには、_configthreadlocale を使用します。Use _configthreadlocale to control whether each thread has its own locale, or all threads in a program share the same locale. 詳細については、「ロケールとコード ページ」を参照してください。For more information, see Locales and Code Pages.

次の表に示す関数のセキュリティを強化したバージョンは、_s ("secure") というサフィックスによって表されます。More secure versions of the functions in the following table are available, indicated by the _s ("secure") suffix. 詳細については、「 Security Features in the CRT」を参照してください。For more information, see Security Features in the CRT.

ロケールに依存するルーチンLocale-Dependent Routines

ルーチンによって返される値Routine 使用Use setlocale カテゴリの設定の依存関係setlocale category setting dependence
atof、_atof_l、_wtof、_wtof_latof, _atof_l, _wtof, _wtof_l 文字を浮動小数点型の値に変換Convert character to floating-point value LC_NUMERICLC_NUMERIC
atoi、_atoi_l、_wtoi、_wtoi_latoi, _atoi_l, _wtoi, _wtoi_l 文字を整数型の値に変換Convert character to integer value LC_NUMERICLC_NUMERIC
_atoi64、_atoi64_l、_wtoi64、_wtoi64_l_atoi64, _atoi64_l, _wtoi64, _wtoi64_l 文字を 64 ビットの整数型の値に変換Convert character to 64-bit integer value LC_NUMERICLC_NUMERIC
atol、_atol_l、_wtol、_wtol_latol, _atol_l, _wtol, _wtol_l 文字を long 型の値に変換Convert character to long value LC_NUMERICLC_NUMERIC
_atodbl、_atodbl_l、_atoldbl、_atoldbl_l、_atoflt、_atoflt_l_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt, _atoflt_l 文字を double-long 型の値に変換Convert character to double-long value LC_NUMERICLC_NUMERIC
is ルーチンis Routines 特定の状態で指定した整数をテストします。Test given integer for particular condition. LC_CTYPELC_CTYPE
isleadbyte、_isleadbyte_lisleadbyte, _isleadbyte_l 先行バイトのテストTest for lead byte LC_CTYPELC_CTYPE
localeconvlocaleconv 数量を書式設定するために適切な値を読み取るRead appropriate values for formatting numeric quantities LC_MONETARY, LC_NUMERIC
MB_CUR_MAXMB_CUR_MAX 現在のロケールのマルチバイト文字の最大長さのバイト数 (STDLIB.H で定義されているマクロ)Maximum length in bytes of any multibyte character in current locale (macro defined in STDLIB.H) LC_CTYPELC_CTYPE
_mbccpy、_mbccpy_l_mbccpy_s、_mbccpy_s_l_mbccpy, _mbccpy_l,_mbccpy_s, _mbccpy_s_l マルチバイト文字の 1 文字をコピーCopy one multibyte character LC_CTYPELC_CTYPE
_mbclen、mblen、_mblen_l_mbclen, mblen, _mblen_l マルチバイト文字のバイト数を検証して返すValidate and return number of bytes in multibyte character LC_CTYPELC_CTYPE
strlen、wcslen、_mbslen、_mbslen_l、_mbstrlen、_mbstrlen_lstrlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l マルチバイト文字列の場合、文字列内の各文字を検証し、文字列の長さを返すFor multibyte-character strings: validate each character in string; return string length LC_CTYPELC_CTYPE
mbstowcs、_mbstowcs_lmbstowcs_s、_mbstowcs_s_lmbstowcs, _mbstowcs_l,mbstowcs_s, _mbstowcs_s_l マルチバイト文字のシーケンスを、対応するワイド文字のシーケンスに変換Convert sequence of multibyte characters to corresponding sequence of wide characters LC_CTYPELC_CTYPE
mbtowc、_mbtowc_lmbtowc, _mbtowc_l マルチバイト文字を対応するワイド文字に変換Convert multibyte character to corresponding wide character LC_CTYPELC_CTYPE
printf 関数printf functions 書式付き出力を書き出すWrite formatted output LC_NUMERIC (小数点文字の出力を決定)LC_NUMERIC (determines radix character output)
scanf 関数scanf functions 書式付き入力を読み取るRead formatted input LC_NUMERIC (基数文字が認識されます)LC_NUMERIC (determines radix character recognition)
setlocale、_wsetlocalesetlocale, _wsetlocale プログラムのロケールを選択するSelect locale for program 利用不可Not applicable
strcoll、wcscoll、_mbscoll、_strcoll_l、_wcscoll_l、_mbscoll_lstrcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l 2 つの文字列の文字を比較するCompare characters of two strings LC_COLLATELC_COLLATE
_stricmp、_wcsicmp、_mbsicmp、_stricmp_l、_wcsicmp_l、_mbsicmp_l_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l 大文字小文字に関係なく、2 つの文字列を比較するCompare two strings without regard to case LC_CTYPELC_CTYPE
_stricoll、_wcsicoll、_mbsicoll、_stricoll_l、_wcsicoll_l、_mbsicoll_l_stricoll, _wcsicoll, _mbsicoll, _stricoll_l, _wcsicoll_l, _mbsicoll_l 2 つの文字列の文字を比較する (大文字小文字を区別しない)Compare characters of two strings (case insensitive) LC_COLLATELC_COLLATE
_strncoll、_wcsncoll、_mbsncoll、_strncoll_l、_wcsncoll_l、_mbsncoll_l_strncoll, _wcsncoll, _mbsncoll, _strncoll_l, _wcsncoll_l, _mbsncoll_l 2 つの文字列の先頭の n 文字を比較するCompare first n characters of two strings LC_COLLATELC_COLLATE
_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l 大文字小文字に関係なく、2 つの文字列の文字を比較する。Compare characters of two strings without regard to case. LC_CTYPELC_CTYPE
_strnicoll、_wcsnicoll、_mbsnicoll、_strnicoll_l、_wcsnicoll_l、_mbsnicoll_l_strnicoll, _wcsnicoll, _mbsnicoll, _strnicoll_l, _wcsnicoll_l, _mbsnicoll_l 2 つの文字列の先頭の n 文字を比較する (大文字小文字を区別しない)Compare first n characters of two strings (case insensitive) LC_COLLATELC_COLLATE
strftime、wcsftime、_strftime_l、_wcsftime_lstrftime, wcsftime, _strftime_l, _wcsftime_l 指定された format 引数に従って日付と時刻の値を書式設定するFormat date and time value according to supplied format argument LC_TIMELC_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_strlwr, _wcslwr, _mbslwr, _strlwr_l, _wcslwr_l, _mbslwr_l,_strlwr_s, _strlwr_s_l, _mbslwr_s, _mbslwr_s_l, _wcslwr_s, _wcslwr_s_l 指定した文字列内の大文字をその位置で小文字に変換するConvert, in place, each uppercase letter in given string to lowercase LC_CTYPELC_CTYPE
strtod、_strtod_l、wcstod、_wcstod_lstrtod, _strtod_l, wcstod, _wcstod_l 文字列を double 型の値に変換するConvert character string to double value LC_NUMERIC (基数文字が認識されます)LC_NUMERIC (determines radix character recognition)
strtol、wcstol、_strtol_l、_wcstol_lstrtol, wcstol, _strtol_l, _wcstol_l 文字列を long 型の値に変換するConvert character string to long value LC_NUMERIC (基数文字が認識されます)LC_NUMERIC (determines radix character recognition)
strtoul、_strtoul_l、wcstoul、_wcstoul_lstrtoul, _strtoul_l, wcstoul, _wcstoul_l 文字列を unsigned long 型の値に変換するConvert character string to unsigned long value LC_NUMERIC (基数文字が認識されます)LC_NUMERIC (determines radix character recognition)
_strupr、_strupr_l、_mbsupr、_mbsupr_l、_wcsupr_l、_wcsupr_strupr_s、_strupr_s_l、_mbsupr_s、_mbsupr_s_l、_wcsupr_s、_wcsupr_s_l_strupr, _strupr_l, _mbsupr, _mbsupr_l, _wcsupr_l, _wcsupr,_strupr_s, _strupr_s_l, _mbsupr_s, _mbsupr_s_l, _wcsupr_s, _wcsupr_s_l 文字列内の小文字をその位置で大文字に変換するConvert, in place, each lowercase letter in string to uppercase LC_CTYPELC_CTYPE
strxfrm、wcsxfrm、_strxfrm_l、_wcsxfrm_lstrxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l ロケールに従って文字列を照合形式に変換するTransform string into collated form according to locale LC_COLLATELC_COLLATE
tolower、_tolower、towlower、_tolower_l、_towlower_l_mbctolower、_mbctolower_l、_mbctoupper、_mbctoupper_ltolower, _tolower, towlower, _tolower_l, _towlower_l,_mbctolower, _mbctolower_l, _mbctoupper, _mbctoupper_l 指定した文字を対応する小文字に変換するConvert given character to corresponding lowercase character LC_CTYPELC_CTYPE
toupper、_toupper、towupper、_toupper_l、_towupper_l_mbctolower、_mbctolower_l、_mbctoupper、_mbctoupper_ltoupper, _toupper, towupper, _toupper_l, _towupper_l,_mbctolower, _mbctolower_l, _mbctoupper, _mbctoupper_l 指定した文字を対応する大文字に変換するConvert given character to corresponding uppercase letter LC_CTYPELC_CTYPE
wcstombs、_wcstombs_lwcstombs_s、_wcstombs_s_lwcstombs, _wcstombs_l,wcstombs_s, _wcstombs_s_l ワイド文字のシーケンスを、対応するマルチバイト文字のシーケンスに変換するConvert sequence of wide characters to corresponding sequence of multibyte characters LC_CTYPELC_CTYPE
wctomb、_wctomb_lwctomb_s、_wctomb_s_lwctomb, _wctomb_l,wctomb_s, _wctomb_s_l ワイド文字を対応するマルチバイト文字に変換するConvert wide character to corresponding multibyte character LC_CTYPELC_CTYPE

注意

マルチバイトのルーチンの場合、マルチバイトのコード ページは setlocale で設定されたロケールと同じである必要があります。For multibyte routines, the multibyte code page must be equivalent to the locale set with setlocale. _MB_CP_LOCALE 引数を指定した _setmbcp では、マルチバイトのコード ページを setlocale のコード ページと同じにします。_setmbcp, with an argument of _MB_CP_LOCALE makes the multibyte code page the same as the setlocale code page.

関連項目See also

国際化Internationalization
カテゴリ別ユニバーサル C ランタイム ルーチンUniversal C runtime routines by category