Función de biblioteca C - setlocale ()

Descripción

La función de la biblioteca C char *setlocale(int category, const char *locale) establece o lee información dependiente de la ubicación.

Declaración

A continuación se muestra la declaración de la función setlocale ().

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

Parámetros

  • category - Esta es una constante con nombre que especifica la categoría de las funciones afectadas por la configuración regional.

    • LC_ALL para todo lo siguiente.

    • LC_COLLATEpara comparar cadenas. Consulte strcoll ().

    • LC_CTYPEpara clasificación y conversión de personajes. Por ejemplo, strtoupper ().

    • LC_MONETARY para el formato monetario de localeconv ().

    • LC_NUMERIC para separador decimal de localeconv ().

    • LC_TIME para el formato de fecha y hora con strftime ().

    • LC_MESSAGES para las respuestas del sistema.

  • locale - Si la configuración regional es NULL o la cadena vacía "", los nombres de las configuraciones regionales se establecerán a partir de los valores de las variables de entorno con los mismos nombres que las categorías anteriores.

Valor devuelto

Una llamada exitosa a setlocale () devuelve una cadena opaca que corresponde al conjunto de configuraciones regionales. El valor de retorno es NULL si la solicitud no se puede cumplir.

Ejemplo

El siguiente ejemplo muestra el uso de la función 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);
}

Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:

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