Spec-Zone.ru › C

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>

См. также

localeconv
запросы о деталях форматирования чисел и валюты текущего языка
(функция)
Документация C++ для lconv

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/locale/lconv

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API