_create_locale
, _wcreate_locale
Cria um objeto de localidade.
Sintaxe
_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 de localidade.
Retornar valor
Se um válido locale
e category
são fornecidos, as funções retornam as configurações de localidade especificadas como um _locale_t
objeto. As configurações de localidade atuais do programa não são alteradas.
Comentários
A função _create_locale
permite criar um objeto que representa algumas configurações específicas à região, para uso em versões específicas à localidade de várias funções CRT (funciona com o sufixo _l
). O comportamento é semelhante a setlocale
, com exceção de que, em vez de aplicar as configurações de localidade especificadas ao ambiente atual, as configurações são salvas em uma estrutura _locale_t
que é retornada. A _locale_t
estrutura deve ser liberada quando _free_locale
não for mais necessária.
A função _wcreate_locale
é uma versão de caractere largo da função _create_locale
; o argumento locale
para _wcreate_locale
é uma cadeia de caracteres larga. Caso contrário, _wcreate_locale
e _create_locale
se comportam de forma idêntica.
O argumento category
especifica as partes do comportamento específico à localidade que são afetadas. Os sinalizadores usados para category
e as partes do programa que eles afetam são mostrados nesta tabela:
Sinalizador category |
Afeta |
---|---|
LC_ALL |
Todas as categorias, conforme listado abaixo. |
LC_COLLATE |
As funções strcoll , _stricoll , wcscoll , _wcsicoll , strxfrm , _strncoll , _strnicoll , _wcsncoll , _wcsnicoll e wcsxfrm . |
LC_CTYPE |
As funções de manipulação de caracteres (exceto isdigit , isxdigit , mbstowcs e mbtowc , que não são afetadas). |
LC_MONETARY |
Informações de formatação monetária retornadas pela função localeconv . |
LC_NUMERIC |
Caractere de ponto decimal para rotinas de saída formatadas (como printf ), para rotinas de conversão de dados, e para informações não monetárias de formatação retornadas 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 retornada por localeconv . |
LC_TIME |
As funções strftime e wcsftime . |
Essa função valida os parâmetros category
e locale
. Se o parâmetro category não for um dos valores fornecidos na tabela anterior ou se locale
for NULL
, a função retornará NULL
.
O argumento locale
é um ponteiro para uma cadeia de caracteres que especifica a localidade. Para obter informações sobre o formato do argumento, consulte Nomes de localidade, Idiomas e Cadeias de caracteres de locale
país/região.
O locale
argumento pode ter vários tipos de valores: 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 combinação de cadeia de caracteres de idioma, código de país/região e página de código. O conjunto (de nomes de localidade disponíveis, idiomas, códigos de país/região e páginas de código) inclui todos os que são suportados pela API NLS do Windows. O conjunto de nomes de localidade _create_locale
com suporte é descrito em Nomes de localidade, Idiomas e Cadeias de caracteres de país/região. O conjunto de cadeias de caracteres de idioma e país/região suportadas por _create_locale
são listadas em Cadeias de caracteres de idioma e Cadeias 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 à esquerda), foi preterido.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> ou <wchar.h> |
Para obter informações sobre 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);
}
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Confira também
Nomes de localidade, idiomas e cadeias de caracteres de país/região
Cadeias de caracteres de idioma
Cadeias de caracteres de país/região
_free_locale
_configthreadlocale
setlocale
Localidade
localeconv
_mbclen
, mblen
, _mblen_l
strlen
, wcslen
, _mbslen
, _mbslen_l
, _mbstrlen
, _mbstrlen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
_setmbcp
setlocale
, _wsetlocale
Funções strcoll
strftime
, wcsftime
, _strftime_l
, _wcsftime_l
strxfrm
, wcsxfrm
, _strxfrm_l
, _wcsxfrm_l
wcstombs
, _wcstombs_l
wctomb
, _wctomb_l
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de