Содержание | Глава 16

Функция setlocale

#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;
} 

Зависимые функции

localeconv() time() strcoll() strftime()
Содержание | Глава 16