Format
#include <locale.h> struct lconv *localeconv(void);
Language Level: ANSI, XPG4
localeconv retrieves information about the environment for the
current locale and places the information in a structure of type
struct lconv. Subsequent calls to localeconv, or to setlocale
with the argument LC_ALL, LC_MONETARY, or LC_NUMERIC, can
overwrite the structure.
The structure contains the members listed below. Defaults shown are for the "C" locale. Pointers to strings with a value of "" indicate that the value is not available in this locale or is of zero length. Character types with a value of UCHAR_MAX indicate that the value is not available in this locale.
| Element | Purpose of Element | Default |
|---|---|---|
| char *decimal_point | Decimal-point character for formatting nonmonetary quantities. | "." |
| char *thousands_sep | Character used to separate groups of digits to the left of the decimal-point character in formatted nonmonetary quantities. | "" |
| char *grouping | Size of each group of digits in formatted nonmonetary quantities. The value of each character in the string determines the number of digits in a group. CHAR_MAX indicates that there are no further groupings. 0 indicates that the previous element is to be used for the remainder of the digits. | "" |
| char *int_curr_symbol | International currency symbol. The first three characters contain the alphabetic international currency symbol. The fourth character (usually a space) separates the international currency symbol from the monetary quantity. | "" |
| char *currency_symbol | Local currency symbol. | "" |
| char *mon_decimal_point | Decimal-point character for formatting monetary quantities. | "." |
| char *mon_thousands_sep | Separator for digits in formatted monetary quantities. | "" |
| char *mon_grouping | Size of each group of digits in formatted monetary quantities. The value of each character in the string determines the number of digits in a group. CHAR_MAX indicates that there are no further groupings. 0 indicates that the previous element is to be used for the remainder of the digits. | "" |
| char *positive_sign | Positive sign used in monetary quantities. | "" |
| char *negative_sign | Negative sign used in monetary quantities. | "" |
| char int_frac_digits | Number of displayed digits to the right of the decimal place for internationally formatted monetary quantities. | UCHAR_MAX |
| char frac_digits | Number of digits to the right of the decimal place in monetary quantities. | UCHAR_MAX |
| char p_cs_precedes | 1 if the currency_symbol precedes the value for a nonnegative formatted monetary quantity; 0 if it does not. | UCHAR_MAX |
| char p_sep_by_space | 1 if the currency_symbol is separated by a space from the value of a nonnegative formatted monetary quantity; 0 if it is not. | UCHAR_MAX |
| char n_cs_precedes | 1 if the currency_symbol precedes the value for a negative formatted monetary quantity; 0 if it does not. | UCHAR_MAX |
| char n_sep_by_space | 1 if the currency_symbol is separated by a space from the value of a negative formatted monetary quantity; 0 if it is not. | UCHAR_MAX |
| char p_sign_posn | Position of the positive_sign for a nonnegative formatted monetary quantity. | UCHAR_MAX |
| char n_sign_posn | Position of the negative_sign for a negative formatted monetary quantity. | UCHAR_MAX |
| char *left_parenthesis | Symbol to appear to the left of a negative-valued monetary symbol (such as a loss or deficit). | "(" |
| char *right_parenthesis | Symbol to appear to the right of a negative-valued monetary symbol (such as a loss or deficit). | ")" |
| char *debit_sign | String to indicate a non-negative-valued formatted monetary quantity. | "DB" |
| char *credit_sign | String to indicate a negative-valued formatted monetary quantity. | "CR" |
The grouping and mon_grouping members can have the following values:
| Value | Meaning |
| CHAR_MAX | No further grouping is to be performed. |
| 0 | The previous element is to be repeatedly used for the rest of the digits. |
| other | The number of digits that comprise the current group. The next element is examined to determine the size of the next group of digits before the current group. |
The n_sign_posn and p_sign_posn elements can have the following values:
| Value | Meaning |
| 0 | The quantity and currency_symbol are enclosed in parentheses. |
| 1 | The sign precedes the quantity and currency_symbol. |
| 2 | The sign follows the quantity and currency_symbol. |
| 3 | The sign precedes the currency_symbol. |
| 4 | The sign follows the currency_symbol. |
| 5 | Use debit_sign for p_sign_posn or credit_sign for n_sign_posn. |
Return Value
localeconv returns a pointer to the lconv structure.
![]()
setlocale -- Set Locale
<locale.h>