#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 относится ко всем категориям локализации. Макрос LC_COLLATE оказывает влияние на выполнение функции strcoll(). Макрос LC_CTYPE изменяет характер работы символьных функций. Макрос LC_MONETARY определяет денежный формат. Макрос LC_NUMERIC изменяет символ десятичной точки для функций форматированного ввода-вывода. Наконец, макрос LC_TIME определяет поведение функции strftime().
Функция setlocale() возвращает указатель на строку, связанную с параметром type.
Эта программа отображает текущую установку локализации:
#include <locale.h> #include <stdio.h> int main(void) { printf(setlocale(LC_ALL, "")); return 0; }