Función de la biblioteca C -localeconv()
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 una
struct 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 <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.