lconv
| Определено в заголовочном файле <locale.h>
|
||
struct lconv; |
||
Структура lconv содержит правила форматирования числовых и денежных единиц, определяемые локалью C. Объекты этой структуры могут быть получены с помощью localeconv. Члены lconv это значения типа char и типа char*. Каждый член типа char*, кроме decimal_point, может указывать на нуль-символ (то есть пустую C-строку). Члены типа char это неотрицательные числа, любой из которых может быть равен CHAR_MAX, если соответствующее значение не доступно в текущей локали C.
Объекты-члены
Параметры форматирования неденежных числовых единиц
char* decimal_point |
символ-разделитель целой и дробной частей (публичный объект-член) |
char* thousands_sep |
символ-разделитель групп разрядов (публичный объект-член) |
char* grouping |
строка, элементы которой обозначают размеры групп разрядов (публичный объект-член) |
Параметры форматирования денежных числовых единиц
char* mon_decimal_point |
символ-разделитель целой и дробной частей (публичный объект-член) |
char* mon_thousands_sep |
символ-разделитель групп разрядов (публичный объект-член) |
char* mon_grouping |
строка, элементы которой обозначают размеры групп разрядов (публичный объект-член) |
char* positive_sign |
строка, используемая для обозначения количества неотрицательных денежных единиц (публичный объект-член) |
char* negative_sign |
строка, используемая для обозначения количества отрицательных денежных единиц (публичный объект-член) |
Параметры форматирования локальных денежных числовых единиц
char* currency_symbol |
символ, используемый для обозначения валюты в текущей локали C (публичный объект-член) |
char frac_digits |
количество цифр после разделителя целой и дробной частей для отображения в денежных единицах (публичный объект-член) |
char p_cs_precedes |
1 если символ валюты помещается перед неотрицательным значением, 0 если после (публичный объект-член) |
char n_cs_precedes |
1 если символ валюты помещается перед отрицательным значением, 0 если после (публичный объект-член) |
char p_sep_by_space |
обозначает разделение currency_symbol, positive_sign и неотрицательного денежного значения (публичный объект-член) |
char n_sep_by_space |
обозначает разделение currency_symbol, negative_sign и неотрицательного денежного значения (публичный объект-член) |
char p_sign_posn |
обозначает позицию positive_sign в неотрицательном денежном значении (публичный объект-член) |
char n_sign_posn |
обозначает позицию negative_sign в отрицательном денежном значении (публичный объект-член) |
Параметры форматирования международных денежных числовых единиц
char* int_curr_symbol |
строка, используемая в качестве международного названия валют в текущей локали C (публичный объект-член) |
char int_frac_digits |
количество цифр после разделителя целой и дробной частей для отображения в международных денежных единицах (публичный объект-член) |
char int_p_cs_precedes (C99) |
1 если int_curr_symbol помещается перед неотрицательным международным денежным значением, 0 если после (публичный объект-член) |
char int_n_cs_precedes (C99) |
1 если int_curr_symbol помещается перед отрицательным международным денежным значением, 0 если после (публичный объект-член) |
char int_p_sep_by_space (C99) |
обозначает разделение int_curr_symbol, positive_sign и неотрицательного международного денежного значения (публичный объект-член) |
char int_n_sep_by_space (C99) |
обозначает разделение int_curr_symbol, negative_sign и отрицательного международного денежного значения (публичный объект-член) |
char int_p_sign_posn (C99) |
обозначает позицию positive_sign в неотрицательном международном денежном значении (публичный объект-член) |
char int_n_sign_posn (C99) |
обозначает позицию negative_sign в отрицательном международном денежном значении (публичный объект-член) |
Символы в C-строках, на которые указывают grouping и mon_grouping интерпретируются согласно их числовых значений are interpreted according to their numeric values. Когда встречается завершающий '\0', подразумевается, что последнее увиденное значение повторяется в оставшихся цифрах. Если встречается CHAR_MAX, никакие дальнейшие цифры не группируются. Типичная группировка трёх цифр за раз это "\003".
Значения p_sep_by_space, n_sep_by_space, int_p_sep_by_space, int_n_sep_by_space интерпретируются следующим образом:
| 0 | пробелы не разделяют символ валюты и значение |
| 1 | знак присоединяется к символу валюты, значение отделяется пробелом |
| 2 | знак присоединяется к значению. Символ валюты отделяется пробелом |
Значения p_sign_posn, n_sign_posn, int_p_sign_posn, int_n_sign_posn интерпретируются следующим образом:
| 0 | используются скобки вокруг значения и символа валюты для представления знака |
| 1 | знак перед значением и символом валюты |
| 2 | знак после значения и символа валюты |
| 3 | знак перед символом валюты |
| 4 | знак после символа |
Пример
#include <locale.h>
#include <stdio.h>
int main(void)
{
setlocale(LC_ALL, "ja_JP.UTF-8");
struct lconv *lc = localeconv();
printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol);
}
Возможный вывод:
Japanese currency symbol: ¥(JPY )
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.11/2 Локализация <locale.h> (стр. 223)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.11/2 Локализация <locale.h> (стр. 204)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.4 ЛОКАЛИЗАЦИЯ <locale.h>
См. также
| запрашивает числовой и денежный форматы текущей локали (функция) | |
Документация C++ по lconv
| |