_create_locale, _wcreate_locale
Vytvoří objekt národního prostředí.
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Parametry
category
Kategorie.locale
Specifikátoru národního prostředí.
Vrácená hodnota
Je-li platný locale a category je uveden, vrátí nastavení zadané národní prostředí jako _locale_t objektu.Aktuální nastavení národního prostředí programu se nezmění.
Poznámky
_create_locale Funkce umožňuje vytvořit objekt, který představuje určité specifické nastavení pro použití v národního verze mnoha funkcí CRT (funguje s _l přípona).Chování se podobá setlocale, s tím rozdílem, že místo použití nastavení zadané národní prostředí aktuálního prostředí, je nastavení uloženo v _locale_t strukturu, která je vrácena._locale_t Struktury by měly uvolnit pomocí _free_locale Pokud je již nepotřebujete.
_wcreate_localeje verzí širokého znaku _create_locale; locale argument _wcreate_locale je řetězec širokého znaku._wcreate_localea _create_locale jinak chovat identicky.
category Argument určuje části chování specifické pro národní prostředí, které jsou ovlivněny.Příznaky použité pro category a jsou části programu, které ovlivňují jak je znázorněno v následující tabulce.
LC_ALL
Všechny kategorie, jak je uvedeno níže.LC_COLLATE
The strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll, and wcsxfrm functions.LC_CTYPE
Funkce zpracování znaků (s výjimkou isdigit, isxdigit, mbstowcs, a mbtowc, které jsou ovlivněny).LC_MONETARY
Formátování měnovou informace vrácené localeconv funkce.LC_NUMERIC
Desetinnou znak pro rutiny formátovaný výstup (jako je například printf), pro převod dat rutin a nefinanční formátovací informace vrácené localeconv.Kromě znak desetinné čárky LC_NUMERIC sady tisíců oddělovač a sdružení řídí řetězec vrácený localeconv.LC_TIME
strftime a wcsftime funkce.
Tato funkce ověřuje category a locale parametry.Pokud parametr category je jedna z hodnot uvedených v předchozí tabulce nebo locale je NULL, vrátí funkce NULL.
locale Argument je ukazatel na řetězec, který určuje národní prostředí.Informace o formátu locale argument, viz Řetězce s názvy národních prostředí, jazyků a zemí/oblastí.
locale Argument přijímá název národního prostředí, řetězec jazyka, řetězec jazyka a kód země/oblasti, znaková stránka nebo řetězec jazyka, kód země a znakové stránky.Sada k dispozici místní názvy, jazyky, kódy země a znakové stránky zahrnuje všechny jsou podporovány NLS API systému Windows s výjimkou znakových stránek, které vyžadují více než dva bajty na znak, například UTF-7 a UTF-8.Pokud zadáte kód stránky jako UTF-7 nebo UTF-8, _create_locale se nezdaří, vrací hodnotu NULL.Nastavení národního prostředí názvy podporovaných _create_locale jsou popsány v Řetězce s názvy národních prostředí, jazyků a zemí/oblastí.Nastavení jazyka a země či oblasti řetězce, které jsou podporovány _create_locale jsou uvedeny v Jazyk řetězce a Země/oblast řetězce.
Další informace o nastavení národního prostředí naleznete v tématu setlocale _wsetlocale.
Předchozí název této funkce __create_locale (se dvěma předními podtržítka), byla zastaralá.
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> nebo <wchar.h> |
Další informace o kompatibilitě, viz Compatibility.
Příklad
// 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);
}
Vzorový výstup
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Ekvivalent v rozhraní .NET Framework
Třída System::Globalization::CultureInfo
Viz také
Referenční dokumentace
Řetězce s názvy národních prostředí, jazyků a zemí/oblastí
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
Funkce STRFTIME, wcsftime, _strftime_l, _wcsftime_l