#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;    /*Количество цифр справа от десятичной точки для денежных значений,
                         отображаемых в международном формате. */
сhar frac_digits;        /* Количество цифр справа от десятичной точки для денежных значений, 
                         отображаемых в местном формате. */
char p_cs_precedes;      /* 1-если символ валюты предшествует положительному значению,0- если 
                         символ валюты следует за значением. */
char p_sep_by_space;     /* 1-если символ валюты отделяется от значения пробелом,0- в противном
                         случае. В версии С99 содержит разделитель. */
char n_cs_precedes;      /* 1- если символ валюты предшествует отрицательному значению, 
                         0- если символ валюты следует за значением. */
char n_sep_by_space;     /* 1- если символ валюты отделяется от отрицательного значения пробелом,
                         0- если символ валюты следует за значением. В версии С99 содержит 
                         разделитель. */
сhar p_sign_posn;        /*Указывает позицию символа положительного значения. */
char n_ sign_posn;       /* Указывает позицию символа отрицательного значения. */
/* Следующие члены добавлены в С99. */
char _p_ cs_precedes;    /* 1 - если символ валюты предшествует положительному значению, 
                         0 - еслисимвол валюты следует за значением. Применяется для значений 
                         в международном формате. */
char _p_ sep_by_space;   /* Разделитель между символом валюты, знаком и положительным значением.
                         Применяется для значений в международном. формате. */
Rhar_n_cs_ precedes;     /* 1 - если символ валюты предшествует отрицательному значению, 
                         0 - если  символ валюты следует за значением. Применяется для значений 
                         в международном  формате . */
char _n_ sep_by_space;   /* Разделитель между символом валюты, знаком и отрицательным значением. 
                         Применяется для значений в международном формате . */
char _n_sign_ posn;      /* Указывает позицию символа .отрицательного значения. Применяется 
                         для значений в международном формате.*/
Функция localeconv() возвращает указатель на структуру lconv. Следует помнить, что содержимое этой структуры изменять нельзя. Необходимо обратится к документации вашего транслятора для определения специфической информации, касающейся структуры lconv.
Пример 1
Следующая программа отображает символ десятичной точки, используемый в текущей локализации:
#include  <stdio.h>
#include  <locale.h>
int main (void)
{
struct  lconv lc;
lc  =   *localeconv();
printf("B  качестве разделителя целой и дробной части в десятичных числах используется  символ  %s\n",   lc.decimal_point);
return  0;
}
При этом используется родственная функция setlocale().