_create_locale, _wcreate_locale
Crée un objet de paramètres régionaux.
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Paramètres
category
Catégorie.locale
Spécificateur de paramètres régionaux.
Valeur de retour
Si locale valide et category sont donnés, retourne les paramètres régionaux spécifiés comme objet d' _locale_t .Les paramètres régionaux du programme ne sont pas modifiés.
Notes
La fonction d' _create_locale vous permet de créer un objet qui représente certaines configurations régionales, pour une utilisation dans des versions spécifiques aux paramètres régionaux de nombreuses fonctions CRT (fonctions avec le suffixe d' _l ).Le comportement est identique à setlocale, mais au lieu d'appliquer les paramètres régionaux spécifiés à l'environnement actuel, les paramètres sont stockés dans une structure d' _locale_t retournée.La structure d' _locale_t doit être libérée avec _free_locale lorsqu'il n'est plus nécessaire.
_wcreate_locale est une version à caractère élargi d' _create_locale; l'argument d' locale à _wcreate_locale est une chaîne à caractères larges._wcreate_locale et _create_locale se comportent de sinon.
L'argument d' category spécifie les parties du comportement spécifique aux paramètres régionaux affectées.Les balises utilisées pour category et les parties du programme qu'elles affectent les sont comme indiqué dans le tableau suivant.
LC_ALL
Toutes les catégories, comme répertoriées ci-dessous.LC_COLLATE
strcoll, _stricoll, wcscoll, _wcsicoll, strxfrm, _strncoll, _strnicoll, _wcsncoll, _wcsnicoll, et fonctions d' wcsxfrm .LC_CTYPE
Les fonctions de gestion caractère- (sauf isdigit, isxdigit, mbstowcs, et mbtowc, qui ne sont pas affectés).LC_MONETARY
Les informations de mise en forme Monétaire- retournées par la fonction d' localeconv .LC_NUMERIC
Caractère de virgule décimale pour les routines de sortie mise en forme (par exemple printf), pour les routines de conversion de données, et pour des informations de mise en forme nonmonétaire retournée par localeconv.Outre le caractère de virgule décimale, LC_NUMERIC définit le séparateur des milliers et la chaîne de contrôle de regroupement retournés par localeconv.LC_TIME
Les fonctions d' strftime et d' wcsftime .
Cette fonction valide les paramètres d' category et d' locale .Si le paramètre de catégorie n'est pas l'une des valeurs fournies dans le tableau précédent ou si locale est NULL, la fonction retourne NULL.
L'argument d' locale est un pointeur vers une chaîne qui spécifie les paramètres régionaux.Pour plus d'informations sur le format de l'argument d' locale, consultez Chaînes relatives aux noms, aux langues, au pays et à la région.
L'argument d' locale peut prendre un nom des paramètres régionaux, une chaîne SQL, une chaîne de langue et un pays/région code, une page de codes, ou une chaîne SQL, un pays/région code, et une page de codes.L'ensemble des noms des paramètres régionaux disponibles, de langages, de pays ou de région codes, et de pages de codes inclut tous ceux pris en charge par l'API windows NLS exception de les pages de codes qui requièrent plus de deux octets pour chaque caractère, tel que UTF-7 et UTF-8.Si vous fournissez une page de codes comme UTF-7 ou UTF-8, _create_locale échoue, qui retourne NULL.L'ensemble des noms des paramètres régionaux pris en charge par _create_locale sont décrits dans Chaînes relatives aux noms, aux langues, au pays et à la région.L'ensemble de chaînes de langue et de pays/région prises en charge par _create_locale sont répertoriés dans Chaînes de langage et Chaînes de pays/région.
Pour plus d'informations sur les paramètres régionaux, consultez setlocale, _wsetlocale.
Le nom précédent de cette fonction, __create_locale (avec deux principaux traits de soulignement), a été déconseillé.
Configuration requise
Routine |
En-tête requis |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> ou <wchar.h> |
Pour des informations de compatibilité supplémentaires, consultez l' Compatibilité.
Exemple
// 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);
}
Résultat de l'exemple
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Équivalent .NET Framework
Classe de System::Globalization::CultureInfo
Voir aussi
Référence
Chaînes relatives aux noms, aux langues, au pays et à la région
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
strftime, wcsftime, _strftime_l, _wcsftime_l