Fonction de bibliothèque C - setlocale ()

La description

La fonction de bibliothèque C char *setlocale(int category, const char *locale) définit ou lit les informations dépendant de l'emplacement.

Déclaration

Voici la déclaration de la fonction setlocale ().

char *setlocale(int category, const char *locale)

Paramètres

  • category - Il s'agit d'une constante nommée spécifiant la catégorie des fonctions affectées par les paramètres régionaux.

    • LC_ALL pour tout ce qui suit.

    • LC_COLLATEpour la comparaison de chaînes. Voir strcoll ().

    • LC_CTYPEpour la classification et la conversion des caractères. Par exemple - strtoupper ().

    • LC_MONETARY pour le formatage monétaire pour localeconv ().

    • LC_NUMERIC pour séparateur décimal pour localeconv ().

    • LC_TIME pour le formatage de la date et de l'heure avec strftime ().

    • LC_MESSAGES pour les réponses du système.

  • locale - Si les paramètres régionaux sont NULL ou la chaîne vide "", les noms de paramètres régionaux seront définis à partir des valeurs des variables d'environnement portant les mêmes noms que les catégories ci-dessus.

Valeur de retour

Un appel réussi à setlocale () renvoie une chaîne opaque qui correspond à l'ensemble de paramètres régionaux. La valeur de retour est NULL si la demande ne peut pas être honorée.

Exemple

L'exemple suivant montre l'utilisation de la fonction setlocale ().

#include <locale.h>
#include <stdio.h>
#include <time.h>

int main () {
   time_t currtime;
   struct tm *timer;
   char buffer[80];

   time( &currtime );
   timer = localtime( &currtime );

   printf("Locale is: %s\n", setlocale(LC_ALL, "en_GB"));
   strftime(buffer,80,"%c", timer );
   printf("Date is: %s\n", buffer);

  
   printf("Locale is: %s\n", setlocale(LC_ALL, "de_DE"));
   strftime(buffer,80,"%c", timer );
   printf("Date is: %s\n", buffer);

   return(0);
}

Compilons et exécutons le programme ci-dessus qui produira le résultat suivant -

Locale is: en_GB                                                            
Date is: Fri 05 Dec 2014 10:35:02 UTC                                       
Locale is: de_DE                                                            
Date is: Fr 05 Dez 2014 10:35:02 UTC