_create_locale, _wcreate_locale
Cria um objeto de localidade.
_locale_t _create_locale( int category, const char *locale ); _locale_t _wcreate_locale( int category, const wchar_t *locale );
Parâmetros
category
Categoria.locale
Especificador da localidade.
Valor de retorno
Se locale válido e são category dados, que retorna as configurações de localidade especificada como _locale_t objeto.As configurações de localidade atual do programa não são alteradas.
Comentários
A função de _create_locale permite que você crie um objeto que representa determinadas configurações específicas, específicas para uso em versões específicas de muitas funções de CRT (funções com o sufixo de _l ).O comportamento é semelhante a setlocale, exceto que em vez de aplicar as configurações de localidade especificada para o ambiente atual, as configurações são salvas em uma estrutura de _locale_t que é retornada.A estrutura de _locale_t deve ser liberada usando _free_locale quando não for mais necessária.
_wcreate_locale é uma versão de largo- caractere de _create_locale; o argumento de locale a _wcreate_locale é uma cadeia de caracteres de largo- caractere._wcreate_locale e _create_locale se comportam de forma idêntica.
O argumento de category especifica as partes do comportamento específico que são afetadas.Os sinalizadores usados para category e as partes do programa que afetam são conforme mostrado na tabela.
LC_ALL
Todas as categorias, como listadas abaixo.LC_COLLATE
strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll, e funções de wcsxfrm .LC_CTYPE
Funções de caractere- tratamento (exceto isdigit, isxdigit, mbstowcs, e mbtowc, que não são afetados.)LC_MONETARY
Informações de formatação Monetário- retornada pela função de localeconv .LC_NUMERIC
Caractere de ponto decimal para rotinas de saída (formatados como printf), para rotinas de conversão de dados, e para informações não monetária de formatação retornada por localeconv.Além do caractere de ponto decimal, LC_NUMERIC define o separador de milhares e a cadeia de caracteres de controle de agrupamento retornados por localeconv.LC_TIME
Funções de strftime e de wcsftime .
Essa função valida os parâmetros de category e de locale .Se o parâmetro de categoria não é um dos valores dados na tabela anterior ou se locale é NULL, a função retorna NULL.
O argumento de locale é um ponteiro para uma cadeia de caracteres que especifica a localidade.Para obter informações sobre o formato de argumento de locale , consulte Nomes de localidades, idiomas e cadeias de caracteres de país/região.
O argumento de locale pode ter um nome de localidade, uma cadeia de caracteres de idioma, uma cadeia de caracteres de idioma e código de país/região, uma página de código, ou uma cadeia de caracteres de idioma, um código do país/região, e uma página de código.O conjunto de nomes disponíveis de localidade, de idiomas, de códigos do país/região, e páginas de código inclui qualquer esses suportados pelo Windows API NLS exceto as páginas de código que exigem mais de dois bytes pelo caractere, como UTF-7 e UTF-8.Se você fornecer uma página de código como UTF-7 ou UTF-8, _create_locale falhará, retornando NULL.O conjunto de nomes de localidade suportados por _create_locale é descrito em Nomes de localidades, idiomas e cadeias de caracteres de país/região.O conjunto de linguagem e do país/cadeias de caracteres da região suportadas por _create_locale está listado em Seqüências de caracteres de idioma e em Seqüências de caracteres de país/região.
Para obter mais informações sobre configurações de localidade, consulte setlocale, wsetlocale.
O nome anterior dessa função, __create_locale (com dois sublinhados chave), foi substituído.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> ou <wchar.h> |
Para informações extras de compatibilidade, consulte Compatibilidade.
Exemplo
// 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);
}
A saída de exemplo
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Equivalência do .NET Framework
Classe de System::Globalization::CultureInfo
Consulte também
Referência
Nomes de localidades, idiomas e cadeias de caracteres de país/região
Seqüências de caracteres de idioma
Seqüências de caracteres de país/região
strlen strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
STRFTIME, wcsftime, _strftime_l, _wcsftime_l