Namespaces
Variants

lconv

From cppreference.net
Definido en el encabezado <locale.h>
struct lconv ;

La estructura lconv contiene reglas de formato numérico y monetario definidas por una configuración regional de C. Los objetos de esta estructura pueden obtenerse con localeconv . Los miembros de lconv son valores de tipo char y de tipo char * . Cada miembro char * excepto decimal_point puede apuntar a un carácter nulo (es decir, a una cadena C vacía). Los miembros de tipo char son todos números no negativos, cualquiera de los cuales puede ser CHAR_MAX si el valor correspondiente no está disponible en la configuración regional actual de C.

Contenidos

Objetos miembro

Parámetros de formato numérico no monetario

char* decimal_point
el carácter utilizado como punto decimal
(objeto miembro público)
char* thousands_sep
el carácter utilizado para separar grupos de dígitos antes del punto decimal
(objeto miembro público)
char* grouping
una cadena cuyos elementos indican los tamaños de los grupos de dígitos
(objeto miembro público)

Parámetros de formato numérico monetario

char* mon_decimal_point
el carácter utilizado como punto decimal
(objeto miembro público)
char* mon_thousands_sep
el carácter utilizado para separar grupos de dígitos antes del punto decimal
(objeto miembro público)
char* mon_grouping
una cadena cuyos elementos indican los tamaños de los grupos de dígitos
(objeto miembro público)
char* positive_sign
una cadena utilizada para indicar cantidades monetarias no negativas
(objeto miembro público)
char* negative_sign
una cadena utilizada para indicar cantidades monetarias negativas
(objeto miembro público)

Parámetros de formato numérico monetario local

char* currency_symbol
el símbolo utilizado para la moneda en la configuración regional actual de C
(objeto miembro público)
char frac_digits
el número de dígitos después del punto decimal para mostrar en una cantidad monetaria
(objeto miembro público)
char p_cs_precedes
1 si currency_symbol se coloca antes del valor no negativo, 0 si después
(objeto miembro público)
char n_cs_precedes
1 si currency_symbol se coloca antes del valor negativo, 0 si después
(objeto miembro público)
char p_sep_by_space
indica la separación entre currency_symbol , positive_sign y el valor monetario no negativo
(objeto miembro público)
char n_sep_by_space
indica la separación entre currency_symbol , negative_sign y el valor monetario negativo
(objeto miembro público)
char p_sign_posn
indica la posición de positive_sign en un valor monetario no negativo
(objeto miembro público)
char n_sign_posn
indica la posición de negative_sign en un valor monetario negativo
(objeto miembro público)

Parámetros de formato numérico monetario internacional

char* int_curr_symbol
la cadena utilizada como nombre de moneda internacional en la configuración regional C actual
(objeto miembro público)
char int_frac_digits
el número de dígitos después del punto decimal a mostrar en una cantidad monetaria internacional
(objeto miembro público)
char int_p_cs_precedes
(C99)
1 si int_curr_symbol se coloca antes del valor monetario internacional no negativo, 0 si se coloca después
(objeto miembro público)
char int_n_cs_precedes
(C99)
1 si int_curr_symbol se coloca antes del valor monetario internacional negativo, 0 si se coloca después
(objeto miembro público)
char int_p_sep_by_space
(C99)
indica la separación entre int_curr_symbol , positive_sign y el valor monetario internacional no negativo
(objeto miembro público)
char int_n_sep_by_space
(C99)
indica la separación entre int_curr_symbol , negative_sign y el valor monetario internacional negativo
(objeto miembro público)
char int_p_sign_posn
(C99)
indica la posición de positive_sign en un valor monetario internacional no negativo
(objeto miembro público)
char int_n_sign_posn
(C99)
indica la posición de negative_sign en un valor monetario internacional negativo
(objeto miembro público)

Los caracteres de las cadenas C apuntadas por grouping y mon_grouping se interpretan según sus valores numéricos. Cuando se encuentra el terminador ' \0 ' , se asume que el último valor visto se repite para el resto de dígitos. Si se encuentra CHAR_MAX , no se agrupan más dígitos. La agrupación típica de tres dígitos a la vez es " \003 " .

Los valores de p_sep_by_space , n_sep_by_space , int_p_sep_by_space , int_n_sep_by_space se interpretan de la siguiente manera:

0 no hay espacio entre el símbolo de moneda y el valor
1 el signo se une al símbolo de moneda, el valor se separa con un espacio
2 el signo se une al valor. El símbolo de moneda se separa con un espacio

Los valores de p_sign_posn , n_sign_posn , int_p_sign_posn , int_n_sign_posn se interpretan de la siguiente manera:

0 se utilizan paréntesis alrededor del valor y el símbolo de moneda para representar el signo
1 signo antes del valor y el símbolo de moneda
2 signo después del valor y el símbolo de moneda
3 signo antes del símbolo de moneda
4 signo después del símbolo de moneda

Ejemplo

#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);
}

Salida posible:

Japanese currency symbol: ¥(JPY )

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.11/2 Localización <locale.h> (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.11/2 Localización <locale.h> (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.11/2 Localización <locale.h> (p: 223)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.11/2 Localización <locale.h> (p: 204)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.4 LOCALIZACIÓN <locale.h>

Véase también

consulta los detalles de formato numérico y monetario de la configuración regional actual
(función)