_create_locale、_wcreate_locale
ロケール オブジェクトを作成します。
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
パラメーター
category
カテゴリ。locale
ロケールの指定子。
戻り値
有効な locale と category が指定された場合、_locale_t として指定のロケール設定オブジェクトを返します。プログラムの現在のロケール設定は変更されません。
解説
_create_locale 関数は、特定の地域固有の設定を表す多くの CRT 関数 (_l のサフィックスの関数) のロケール固有のバージョンのオブジェクトを作成できるようにします。動作は setlocaleに似ていますが、現在の環境に指定したロケール設定を適用する代わりに、設定が返される _locale_t の構造体に保存されます。_locale_t の構造は _free_locale を使用して不要になったときに解放する必要があります。
_wcreate_locale 関数は、_create_locale 関数のワイド文字バージョンです。_wcreate_locale 関数の引数 locale は、ワイド文字列です。それ以外では、_wcreate_locale と _create_locale の動作は同じです。
category の引数は、影響を受けるロケール固有の動作の一部を指定します。category に使用するフラグと呼ばれ、次の表に示すように、影響するプログラムの一部。
LC_ALL
次に示すすべてのカテゴリです。LC_COLLATE
strcoll、_stricoll、wcscoll、_wcsicoll、strxfrm、_strncoll、_strnicoll、_wcsncoll、_wcsnicollと wcsxfrm 関数。LC_CTYPE
文字の操作関数 (そのまま) isdigit、isxdigit、mbstowcsと mbtowcを除く)。LC_MONETARY
localeconv 関数が返す通貨形式情報。LC_NUMERIC
書式設定 printf出力ルーチン (など)、データ変換ルーチン、および非 localeconvが返す通貨形式情報の 10 使用する小数点文字。10 進数ポイントの文字に加え、LC_NUMERIC は localeconvによって返される桁区切り記号およびグループの文字列を設定します。LC_TIME
strftime と wcsftime 関数。
この関数は category と locale のパラメーターを検証します。カテゴリのパラメーターが前の表で指定された値の 1 つがでないか、locale が NULLの場合、関数は NULLを返します。
locale の引数は、ロケールを指定する文字列へのポインターです。locale の引数のファイル形式の詳細については、ロケール名、言語、および国/地域識別文字列を参照してください。
locale の引数はロケール名、言語の文字列、文字列の言語と国/地域コード、コード ページ、または文字列の言語、国/地域コード ページ受け取ることができます。使用できるロケール名、言語、国/地域コード ページのセットはすべて UTF-7、UTF-8 などの文字ごとに 2 バイトを超えるデータを要求するコード ページを除く Windows の NLS API でサポートされる要素を含みます。UTF-7、UTF-8 などのコード ページを指定すると、_create_locale は失敗し、NULL を返します。_create_locale でサポート ロケール名、言語、および国/地域識別文字列でロケール名のセットは説明します。_create_locale でサポートされる 言語識別文字列 と 国/地域識別文字列では、言語と国/地域の文字列は示します。
ロケールの設定に関する詳細については、setlocale、_wsetlocaleを参照してください。
この関数は、__create_locale の以前の名前 (2 種類の先頭にアンダースコア)、その使用は推奨されていません。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> か <wchar.h> |
追加の互換性の詳細については、[互換性]を参照してください。
使用例
// crt_create_locale.c
// Sets the current locale to "de-CH" using the
// setlocale function and demonstrates its effect on the strftime
// function.
#include <stdio.h>
#include <locale.h>
#include <time.h>
int main(void)
{
time_t ltime;
struct tm thetime;
unsigned char str[100];
_locale_t locale;
// Create a locale object representing the German (Switzerland) locale
locale = _create_locale(LC_ALL, "de-CH");
time (<ime);
_gmtime64_s(&thetime, <ime);
// %#x is the long date representation, appropriate to
// the current locale
//
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
printf("_strftime_l failed!\n");
else
printf("In de-CH locale, _strftime_l returns '%s'\n",
str);
_free_locale(locale);
// Create a locale object representing the default C locale
locale = _create_locale(LC_ALL, "C");
time (<ime);
_gmtime64_s(&thetime, <ime);
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
printf("_strftime_l failed!\n");
else
printf("In 'C' locale, _strftime_l returns '%s'\n",
str);
_free_locale(locale);
}
出力例
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
同等の .NET Framework 関数
System::Globalization::CultureInfo のクラス
参照
関連項目
strlen、strlen_l、wcslen、wcslen_l、_mbslen、_mbslen_l、_mbstrlen、_mbstrlen_l
strftime、wcsftime、_strftime_l、_wcsftime_l