_create_locale
, _wcreate_locale
Erstellt ein locale-Objekt.
Syntax
_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 ein gültiger locale
wert und category
angegeben wird, geben die Funktionen die angegebenen Gebietsschemaeinstellungen als _locale_t
Objekt zurück. 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 verwendet _free_locale
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 verwendeten Flags category
und die Teile des Programms, die sie betreffen, sind wie in dieser Tabelle dargestellt:
category -Flag |
Betrifft |
---|---|
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. Zusätzlich zum Dezimalkommazeichen werden das Tausendertrennzeichen und die gruppierende Steuerelementzeichenfolge festgelegt, LC_NUMERIC die von localeconv . |
LC_TIME |
Die Funktionen strftime und wcsftime . |
Diese Funktion überprüft den category
-Parameter und den locale
-Parameter. Wenn der Category-Parameter nicht einer der Werte ist, die in der vorherigen Tabelle angegeben sind oder ist locale
NULL
, gibt die Funktion zurück NULL
.
Das locale
-Argument ist ein Zeiger auf eine Zeichenfolge, die das Gebietsschema angibt. Informationen zum Format des locale
Arguments finden Sie unter Gebietsschemanamen, Sprachen und Zeichenfolgen für Land/Region.
Das locale
Argument kann mehrere Arten von Werten annehmen: einen Gebietsschemanamen, eine Sprachzeichenfolge, eine Sprachzeichenfolge und einen Code für Land/Region, eine Codeseite oder eine Kombination aus Sprachzeichenfolge, Länder-/Regionscode und Codepage. Der Satz (der verfügbaren Gebietsschemanamen, Sprachen, Länder-/Regionscodes und Codeseiten) enthält alle, die von der Windows NLS-API unterstützt werden. Der Satz von Gebietsschemanamen _create_locale
wird in Gebietsschemanamen, Sprachen und Zeichenfolgen für Land/Region beschrieben. Die von ihnen unterstützten _create_locale
Sprachen- und Länder-/Regionszeichenfolgen werden in sprachenspezifischen Zeichenfolgen und Zeichenfolgen für Land/Region 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.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
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 (<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'
Siehe auch
Gebietsschemanamen, Sprachen und Zeichenfolgen für Land/Region
Sprachenzeichenfolgen
Zeichenfolgen für Land/Region
_free_locale
_configthreadlocale
setlocale
Gebietsschema
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