Función de la biblioteca C -localeconv()

C 标准库 - <locale.h>Biblioteca estándar de C - <locale.h>

Descripción

localeconv()es una función de la biblioteca estándar de C<locale.h>que se utiliza para obtener la información de formato numérico y monetario relacionada con la configuración regional actual. Devuelve un puntero a unastruct lconvestructura que contiene la información de formato localizada para la configuración regional actual.

Declaración

La siguiente es la declaración de la función localeconv().

#include <locale.h>

struct lconv *localeconv(void);

Parámetros

  • NA

Valor de retorno

  • Devuelve un puntero a unastruct lconvestructura que contiene la información localizada de la configuración regional actual.

configuración regional actualstruct lconvLa estructura del puntero es la siguiente:

struct lconv {
    char *decimal_point;       // 小数点字符
    char *thousands_sep;       // 千位分隔符
    char *grouping;            // 数字分组方式

    char *int_curr_symbol;     // 国际货币符号
    char *currency_symbol;     // 本地货币符号
    char *mon_decimal_point;   // 货币小数点字符
    char *mon_thousands_sep;   // 货币千位分隔符
    char *mon_grouping;        // 货币分组方式
    char *positive_sign;       // 正数符号
    char *negative_sign;       // 负数符号

    char int_frac_digits;      // 国际小数位数
    char frac_digits;          // 本地小数位数
    char p_cs_precedes;        // 正值货币符号前置
    char p_sep_by_space;       // 正值货币符号与值之间的间隔
    char n_cs_precedes;        // 负值货币符号前置
    char n_sep_by_space;       // 负值货币符号与值之间的间隔
    char p_sign_posn;          // 正值符号位置
    char n_sign_posn;          // 负值符号位置
};

Ejemplo

El siguiente es un ejemplo de código que utiliza localeconv para obtener e imprimir la información de formato numérico y monetario de la configuración regional actual:

Ejemplo

#include <stdio.h>
#include <locale.h>

int main() {
    // Establece la información de localización como la configuración predeterminada de las variables de entorno del usuario
    setlocale(LC_ALL, "");

    // Obtiene la información de localización de la configuración regional actual
    struct lconv *lc = localeconv();

    // Imprime la información de formato numérico
    printf("Decimal point character: %s\n", lc->decimal_point);
    printf("Thousands separator: %s\n", lc->thousands_sep);
    printf("Grouping: %s\n", lc->grouping);

    // Imprime la información de formato monetario
    printf("International currency symbol: %s\n", lc->int_curr_symbol);
    printf("Local currency symbol: %s\n", lc->currency_symbol);
    printf("Monetary decimal point character: %s\n", lc->mon_decimal_point);
    printf("Monetary thousands separator: %s\n", lc->mon_thousands_sep);
    printf("Monetary grouping: %s\n", lc->mon_grouping);
    printf("Positive sign: %s\n", lc->positive_sign);
    printf("Negative sign: %s\n", lc->negative_sign);
    printf("International fractional digits: %d\n", lc->int_frac_digits);
    printf("Local fractional digits: %d\n", lc->frac_digits);
    printf("Positive currency symbol precedes: %d\n", lc->p_cs_precedes);
    printf("Positive currency symbol separated by space: %d\n", lc->p_sep_by_space);
    printf("Negative currency symbol precedes: %d\n", lc->n_cs_precedes);
    printf("Negative currency symbol separated by space: %d\n", lc->n_sep_by_space);
    printf("Positive sign position: %d\n", lc->p_sign_posn);
    printf("Negative sign position: %d\n", lc->n_sign_posn);

    return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Decimal point character: .
Thousands separator: ,
Grouping: 
International currency symbol: CNY 
Local currency symbol: ¥
Monetary decimal point character: .
Monetary thousands separator: ,
Monetary grouping: 
Positive sign: 
Negative sign: -
International fractional digits: 2
Local fractional digits: 2
Positive currency symbol precedes: 1
Positive currency symbol separated by space: 0
Negative currency symbol precedes: 1
Negative currency symbol separated by space: 0
Positive sign position: 1
Negative sign position: 4

Análisis del código

  • Información de formato numérico:

    • decimal_point: carácter de punto decimal, por ejemplo "."。
    • thousands_sep: separador de miles, por ejemplo ","。
    • grouping: método de agrupación de dígitos.
  • Información de formato monetario:

    • int_curr_symbol: símbolo monetario internacional, por ejemplo "USD".
    • currency_symbol: símbolo monetario local, por ejemplo "$".
    • mon_decimal_point: carácter de punto decimal monetario.
    • mon_thousands_sep: separador de miles monetario.
    • mon_grouping: método de agrupación monetario.
    • positive_sign: símbolo de número positivo, por ejemplo "".
    • negative_sign: símbolo de número negativo, por ejemplo "-".
    • int_frac_digits: número de dígitos decimales internacionales.
    • frac_digits: número de dígitos decimales locales.
    • p_cs_precedes: el símbolo monetario para valores positivos se antepone (1 indica antes, 0 indica después).
    • p_sep_by_space: el espacio entre el símbolo monetario y el valor para valores positivos (1 indica que hay espacio, 0 indica que no lo hay).
    • n_cs_precedes: el símbolo monetario para valores negativos se antepone (1 indica antes, 0 indica después).
    • n_sep_by_space: el espacio entre el símbolo monetario y el valor para valores negativos (1 indica que hay espacio, 0 indica que no lo hay).
    • p_sign_posn: posición del signo para valores positivos (1 indica antes, 2 indica después, 3 indica junto al valor, 4 indica junto al símbolo monetario).
    • n_sign_posn: posición del signo para valores negativos (1 indica antes, 2 indica después, 3 indica junto al valor, 4 indica junto al símbolo monetario).

Resumen

localeconvLa función permite al programa obtener la información de formato numérico y monetario de la configuración regional actual. Esto es muy útil para escribir programas internacionalizados que necesitan manejar múltiples idiomas y formatos de moneda. Mediante el uso desetlocaleylocaleconvla función, los programadores pueden implementar la localización del programa, satisfaciendo así las necesidades de diferentes grupos de usuarios.

C 标准库 - <locale.h>Biblioteca estándar de C - <locale.h>

Otras extensiones