Função da biblioteca C - setlocale ()

Descrição

A função da biblioteca C char *setlocale(int category, const char *locale) define ou lê informações dependentes de localização.

Declaração

A seguir está a declaração da função setlocale ().

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

Parâmetros

  • category - Esta é uma constante nomeada que especifica a categoria das funções afetadas pela configuração local.

    • LC_ALL para todos os itens abaixo.

    • LC_COLLATEpara comparação de strings. Veja strcoll ().

    • LC_CTYPEpara classificação e conversão de personagens. Por exemplo - strtoupper ().

    • LC_MONETARY para formatação monetária para localeconv ().

    • LC_NUMERIC para separador decimal para localeconv ().

    • LC_TIME para formatação de data e hora com strftime ().

    • LC_MESSAGES para respostas do sistema.

  • locale - Se a localidade for NULL ou a string vazia "", os nomes das localidades serão definidos a partir dos valores das variáveis ​​de ambiente com os mesmos nomes das categorias acima.

Valor de retorno

Uma chamada bem-sucedida para setlocale () retorna uma string opaca que corresponde ao conjunto de localidade. O valor de retorno é NULL se a solicitação não puder ser honrada.

Exemplo

O exemplo a seguir mostra o uso da função 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);
}

Vamos compilar e executar o programa acima que produzirá o seguinte 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