Freigeben über


_create_locale, _wcreate_locale

Erstellt ein locale-Objekt.

_locale_t _create_locale(
   int category,
   const char *locale 
);
_locale_t _wcreate_locale(
   int category,
   const wchar_t *locale 
);

Parameter

  • category
    Kategorie.

  • locale
    Gebietsschemaspezifizierer.

Rückgabewert

Wenn gültige locale- und category-Parameter angegeben sind, werden die angegebenen Gebietsschemaeinstellungen als _locale_t-Objekt zurückgegeben. Die aktuellen Gebietsschemaeinstellungen des Programms werden nicht geändert.

Hinweise

Die _create_locale-Funktion ermöglicht das Erstellen eines Objekts, das bestimmte bereichsspezifische Einstellungen darstellt, die in gebietsschemaspezifischen Versionen vieler CRT-Funktionen (Funktionen mit dem Suffix _l) verwendet werden können. Das Verhalten ähnelt setlocale, mit dem Unterschied, dass die angegebenen Gebietsschemaeinstellungen nicht auf die aktuelle Umgebung angewendet werden, sondern in einer _locale_t-Struktur gespeichert werden, die zurückgegeben wird. Die _locale_t-Struktur sollte mit _free_locale freigestellt werden, wenn sie nicht mehr benötigt wird.

_wcreate_locale ist eine Breitzeichenversion von _create_locale. Das locale-Argument für _wcreate_locale ist eine Breitzeichenfolge. _wcreate_locale und _create_locale verhalten sich andernfalls identisch.

Das category-Argument gibt die betroffenen Teile des gebietsschemaspezifischen Verhaltens an. Die für category verwendeten Flags und die betroffenen Teile des Programms sind in der folgenden Tabelle dargestellt.

  • LC_ALL
    Alle unten aufgeführten Kategorien.

  • LC_COLLATE
    Die Funktionen strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll und wcsxfrm.

  • LC_CTYPE
    Die Funktionen zur Zeichenbehandlung (außer isdigit, isxdigit, mbstowcs und mbtowc, die nicht betroffen sind).

  • LC_MONETARY
    Durch die localeconv-Funktion zurückgegebene Informationen zur Währungsformatierung.

  • LC_NUMERIC
    Dezimaltrennzeichen für die formatierten Ausgaberoutinen (wie printf), für die Datenkonvertierungsroutinen und für die nicht monetären Formatierungsinformationen, die von localeconv zurückgegeben werden. Neben dem Dezimaltrennzeichen legt LC_NUMERIC das Tausendertrennzeichen und die Zeichenfolge für gruppierte Steuerelemente fest, die von localeconv zurückgegeben werden.

  • LC_TIME
    Die Funktionen strftime und wcsftime.

Diese Funktion überprüft den category-Parameter und den locale-Parameter. Wenn der category-Parameter nicht zu den Werten in der vorherigen Tabelle gehört oder wenn localeNULL ist, gibt die Funktion NULL zurück.

Das locale-Argument ist ein Zeiger auf eine Zeichenfolge, die das Gebietsschema angibt. Informationen zum Format des locale-Arguments finden Sie unter Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen.

Das locale-Argument kann einen Gebietsschemanamen annehmen, eine Sprachenzeichenfolge, eine Sprachenzeichenfolge und eine Landeskennzahl, eine Codepage oder eine Sprachenzeichenfolge, eine Landeskennzahl eine und Codepage. Der Satz verfügbarer Gebietsschemanamen, Sprachen, Länder-/Regionscodes und Codepages umfasst alle diejenigen, die von der Windows NLS-API unterstützt werden, ausgenommen Codepages, die mehr als zwei Bytes pro Zeichen benötigen, wie z. B. UTF-7 und UTF-8. Wenn Sie eine Codepage wie UTF-7 oder UTF-8 bereitstellen, schlägt _create_locale fehl und gibt NULL zurück. Der von _create_locale unterstützte Satz von Gebietsschemanamen wird in Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen beschrieben. Der von _create_locale unterstützte Satz von Sprach- und Länder-/Regionszeichenfolgen ist in Sprachzeichenfolgen und Länder-/Regionszeichenfolgen aufgeführt.

Weitere Informationen zu Gebietsschemaeinstellungen finden Sie unter setlocale, _wsetlocale.

Der vorherige Name dieser Funktion, __create_locale (mit zwei führenden Unterstrichen), ist veraltet.

Anforderungen

Routine

Erforderlicher Header

_create_locale

<locale.h>

_wcreate_locale

<locale.h> oder <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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);
}

Beispielausgabe

In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'

.NET Framework-Entsprechung

System::Globalization::CultureInfo-Klasse

Siehe auch

Referenz

Gebietsschema-Namen, Sprachen und Zeichenfolgen für Länder und Regionen

Sprachzeichenfolgen

Länder-/Regionszeichenfolgen

_free_locale

_configthreadlocale

setlocale

Locale

localeconv

_mbclen, mblen, _mblen_l

strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l

mbstowcs, _mbstowcs_l

mbtowc, _mbtowc_l

_setmbcp

setlocale, _wsetlocale

strcoll-Funktionen

strftime, wcsftime, _strftime_l, _wcsftime_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l