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

Функция localeconv

#include <locale.h>
struct lconv *localeconv(void)

Функция localeconv() возвращает указатель на структуру типа lconv, которая содержит различную информацию о геополитической среде, связанную со способом форматирования чисел. Структура lconv включает следующие члены:

char decimal_point;/* Символ десятичной точки для неденежных значений. */
char thousands_sep;/* Разделитель тысяч для неденежных значений. */
char grouping;/* Определяет группирование для неденежных значений. */
char int_curr_symbol;/* Символ международной валюты. */
char currency_symbol;/* Символ местной валюты. */
char mon_decimal_point;/* Символ десятичной точки для денежных значений. */
char mon_thousands_sep;/* Разделитель тысяч для денежных значений. */
char mon_grouping;/* Определяет группирование для денежных значений. */
char positive_sign;/* Индикатор положительных денежных значений. */
char negative_sign;/* Индикатор отрицательных денежных значений. */
char int_frac_digits;/* Количество цифр справа от десятичной точки для денежных значений, отображаемых в международном формате. */
char frac_digits;/* Количество цифр справа от десятичной точки для денежных значений, отображаемых в местном формате. */
char p_cs_precedes;/* 1 - если символ валюты предшествует положительному значению, 0 - если символ валюты следует за значением. */
char р_sep_by_space;/* 1 - если символ валюты отделяется от значения пробелом, 0 - в противном случае. В версии С99 содержит разделитель.*/
char n_cs_precedes;/* 1 - если символ валюты предшествует отрицательному значению, 0 - если символ валюты следует за значением. */
char n_sep_by_space;/* 1 - если символ валюты отделяется от отрицательного значения пробелом, 0 - если символ валюты следует за значением. В версии С99 содержит разделитель. */
char p_sign_posn;/* Указывает позицию символа положительного значения. */
char n_sign_posn;/* Указывает позицию символа отрицательного значения. */
/* Следующие члены добавлены в С99. */
char _p_cs_precedes;/* 1 - если символ валюты предшествует положительному значению, 0 - если символ валюты следует за значением. Применяется для значений в межд ународном формате. */
char _p_sep_by_space;/* Разделитель между символом валюты, знаком и положительным значением. Применяется для значений в международном формате. */
char _n_cs_precedes;/* 1 - если символ валюты предшествует отрицательному значению, 0 - если символ валюты следует за значением. Применяется для значений в международном формате. */
char _n_sep_by_space;/* Разделитель между символом валюты, знаком и отрицательным значением. Применяется для значений в международном формате. */
char _p_sign_posn;/* Указывает позицию символа положительного значения. Применяется для значений в международном формате. */
char _n_sign_posn;/* Указывает позицию символа отрицательного значения. Применяется для значений в международном формате. */

Функция localeconv() возвращает указатель на структуру lconv. Следует помнить, что содержимое этой структуры изменять нельзя. Обратитесь к документации вашего транслятора для определения специфической информации, касающейся структуры lconv.

Пример

Следующая программа отображает символ десятичной точки, используемый в текущей локализации:

#include <stdio.h>
#include <locale.h>

int main(void)
{
  struct lconv lc;

  lc = *localeconv();

  printf("В качестве разделителя целой и дробной части в десятичных
          числах используется символ: %s\n", lc.decimal_point);

  return 0;
}

Родственная функция

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