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 если currency_symbol размещён перед неотрицательным значением, 0 если после (общедоступный член) |
| char n_cs_precedes | 1 если currency_symbol размещён перед отрицательным значением, 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, интерпретируются в соответствии с их числовыми значениями. При встрече завершающего '\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 )
Ссылки
- Стандарт C23 (ISO/IEC 9899:2023):
- 7.11/2 Локализация <locale.h> (стр. TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.11/2 Локализация <locale.h> (стр. TBD)
- Стандарт 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 |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/locale/lconv