次の方法で共有


_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 (&ltime);
       _gmtime64_s(&thetime, &ltime);

       // %#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 (&ltime);
       _gmtime64_s(&thetime, &ltime);

       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 のクラス

参照

関連項目

ロケール名、言語、および国/地域識別文字列

言語識別文字列

国/地域識別文字列

_free_locale

_configthreadlocale

setlocale

ロケール

localeconv

_mbclen、mblen、_mblen_l

strlen、strlen_l、wcslen、wcslen_l、_mbslen、_mbslen_l、_mbstrlen、_mbstrlen_l

mbstowcs、_mbstowcs_l

mbtowc、_mbtowc_l

_setmbcp

setlocale、_wsetlocale

strcoll 系関数

strftime、wcsftime、_strftime_l、_wcsftime_l

strxfrm、wcsxfrm、_strxfrm_l、_wcsxfrm_l

wcstombs、_wcstombs_l

wctomb、_wctomb_l