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