#include  <locale.h>
char  *setlocale(int   type,   const  char   * locale);
Функция setlocale() позволяет получить или установить некоторые параметры, которые зависят от геополитической среды выполнения программы. Если указатель locale является нулем, функция setlocale() возвращает указатель на строку текущей локализации. В противном случае функция setlocale() попытается использовать строку locale для установки локальных параметров в соответствии с параметром type. Для задания стандартных С-параметров региональной привязки надо использовать строку "С", а для задания собственных параметров среды — пустую строку (""). Чтобы получить подробную информацию о строках локализации, поддерживаемых конкретным компилятором, обратитесь к документации.
При вызове функции setlocale() в качестве параметра type должен быть использован один из следующих макросов (определенных в заголовке <locale.h >).
LC_ALL
LC_COLLATE
LC_CTYFE
LC__MONETARY
LC__NUMERIC
LC_TIME
Макрос LC_ALL относится ко всем категориям локализации. Макрос LCCOLLATE оказывает влияние на выполнение функции strcoll (). Макрос LC_CTYPE изменяет характер работы символьных функций. Макрос LC_MONETARY определяет денежный формат. Макрос LC_NUMERIC изменяет символ десятичной точки для функций форматированного ввода-вывода. Наконец, макрос LCJTIME определяет поведение функции strftime().
Функция setlocale() возвращает указатель на строку, связанную с параметром type.
Пример 1
Эта программа отображает текущую установку локализации:
#include <locale.h>
#include <stdio.h>
int main(void) 
{
printf(setlocale(LC_ALL, " "));
return 0;
}
Здесь используются зависимые функции localeconv(), time(), strcoll() и strftime().