From cppreference.com
< c‎ | locale
Defined in header <locale.h>
struct lconv *localeconv(void);

The localeconv function obtains a pointer to a static object of type lconv, which represents numeric and monetary formatting rules of the current C locale.



Return value

pointer to the current lconv object.


Modifying the object references through the returned pointer is undefined behavior.

localeconv modifies a static object, calling it from different threads without synchronization is undefined behavior.


#include <stdio.h>
#include <locale.h>
int main(void)
  setlocale(LC_MONETARY, "en_IN.utf8");
  struct lconv *lc = localeconv();
  printf("Local Currency Symbol        : %s\n", lc->currency_symbol);
  printf("International Currency Symbol: %s\n", lc->int_curr_symbol);


Local Currency Symbol        : ₹
International Currency Symbol: INR


  • C11 standard (ISO/IEC 9899:2011):
  • The localeconv function (p: 225-230)
  • C99 standard (ISO/IEC 9899:1999):
  • The localeconv function (p: 206-211)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • The localeconv function

See also

gets and sets the current C locale
formatting details, returned by localeconv