lconv
|
Определено в заголовочном файле
<locale.h>
|
||
|
struct
lconv
;
|
||
Структура
lconv
содержит правила числового и денежного форматирования, определённые локализацией C. Объекты этой структуры могут быть получены с помощью
localeconv
. Члены структуры
lconv
являются значениями типа
char
и типа
char
*
. Каждый член типа
char
*
, кроме
decimal_point
, может указывать на нулевой символ (то есть на пустую C-строку). Члены типа
char
являются неотрицательными числами, любое из которых может быть равно
CHAR_MAX
, если соответствующее значение недоступно в текущей локализации C.
Содержание |
Объекты-члены
Параметры неденежного числового форматирования
|
char*
decimal_point
|
символ, используемый в качестве десятичной точки
(public member object) |
|
char*
thousands_sep
|
символ, используемый для разделения групп цифр перед десятичной точкой
(public member object) |
|
char*
grouping
|
строка, элементы которой указывают размеры групп цифр
(public member object) |
Параметры денежного числового форматирования
|
char*
mon_decimal_point
|
символ, используемый в качестве десятичной точки
(public member object) |
|
char*
mon_thousands_sep
|
символ, используемый для разделения групп цифр перед десятичной точкой
(public member object) |
|
char*
mon_grouping
|
строка, элементы которой указывают размеры групп цифр
(public member object) |
|
char*
positive_sign
|
строка, используемая для обозначения неотрицательной денежной величины
(public member object) |
|
char*
negative_sign
|
строка, используемая для обозначения отрицательной денежной величины
(public member object) |
Локальные параметры форматирования денежных числовых значений
|
char*
currency_symbol
|
символ, используемый для валюты в текущей локали C
(public member object) |
|
char
frac_digits
|
количество цифр после десятичной точки для отображения в денежной величине
(public member object) |
|
char
p_cs_precedes
|
1
если
currency_symbol
размещается перед неотрицательным значением,
0
если после
(public member object) |
|
char
n_cs_precedes
|
1
если
currency_symbol
размещается перед отрицательным значением,
0
если после
(public member object) |
|
char
p_sep_by_space
|
указывает разделение между
currency_symbol
,
positive_sign
и неотрицательной денежной величиной
(public member object) |
|
char
n_sep_by_space
|
указывает разделение между
currency_symbol
,
negative_sign
и отрицательной денежной величиной
(public member object) |
|
char
p_sign_posn
|
указывает позицию
positive_sign
в неотрицательной денежной величине
(public member object) |
|
char
n_sign_posn
|
указывает позицию
negative_sign
в отрицательной денежной величине
(public member object) |
Параметры международного денежного числового форматирования
|
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:2024):
-
- 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++ documentation
для
lconv
|
|