C / locale.h / setlocale
localeconv, » setlocale,
Funcion: setlocale()
Sintaxis:
char *setlocale(int categoria, const char *localidad);

Descripcion: La función setlocale selecciona la porción apropiada de la localidad del programa especificado por los argumentos categoria y localidad. La función setlocale puede ser usada para cambiar o preguntar la localidad actual total del programa o porciones de ello. El valor de LC_ALL para categoria nombra la localidad total del programa; los otros valores para categoria nombran solamente una porción de la localidad del programa. LC_COLLATE afecta el comportamiento de las funciones strcoll y strxfrm. LC_CTYPE afecta el comportamiento de las funciones que manipulan caracteres y de las funciones de multibyte. LC_MONETARY afecta a la información de formato monetario retornada por la función localeconv. LC_NUMERIC afecta el carácter de la coma decimal para las funciones de formato de entrada/salida, las funciones de conversión de cadenas, y de la información de formato no monetario retornada por localeconv. LC_TIME afecta el comportamiento de strftime.

Un valor de "C" para localidad especifica el entorno mínimo para la traducción de C; un valor de "" para localidad especifica el entorno nativo definido según la implementación. Otras cadenas definidas según la implementación pueden ser pasadas a setlocale. Al comienzo de la ejecución del programa, la equivalente a setlocale( LC_ALL, "C" ); es ejecutada.


Ejemplo:
#include <stdio.h>
#include <locale.h>
#include <string.h>
 
int main()
{
   struct lconv *lcPtr;
   char *s;
 
   printf( "Localidad: \"%s\"\n\n", setlocale( LC_ALL, "C" ) );
 
   lcPtr = localeconv();
 
   printf( "decimal_point = \"%s\"\t\t",   lcPtr->decimal_point );
   printf( "thousands_sep = \"%s\"\n",     lcPtr->thousands_sep );
   printf( "grouping = \"%s\"\t\t\t",      lcPtr->grouping );
   printf( "int_curr_symbol = \"%s\"\n",   lcPtr->int_curr_symbol );
   printf( "currency_symbol = \"%s\"\t\t", lcPtr->currency_symbol );
   printf( "mon_decimal_point = \"%s\"\n", lcPtr->mon_decimal_point );
   printf( "mon_grouping = \"%s\"\t\t",    lcPtr->mon_grouping );
   printf( "positive_sign = \"%s\"\n",     lcPtr->positive_sign );
   printf( "negative_sign = \"%s\"\n",     lcPtr->negative_sign );
   printf( "int_frac_digits = (char) %d\t",   lcPtr->int_frac_digits );
   printf( "frac_digits = (char) %d\n",       lcPtr->frac_digits );
   printf( "p_cs_precedes = (char) %d\t",     lcPtr->p_cs_precedes );
   printf( "p_sep_by_space = (char) %d\n",    lcPtr->p_sep_by_space );
   printf( "n_cs_precedes = (char) %d\t",     lcPtr->n_cs_precedes );
   printf( "n_sep_by_space = (char) %d\n",    lcPtr->n_sep_by_space );
   printf( "p_sign_posn = (char) %d\t",       lcPtr->p_sign_posn );
   printf( "n_sign_posn = (char) %d\n",       lcPtr->n_sign_posn );
 
   printf( "\nCambiamos algunas variables para concordar con la localidad de " );
   printf( "Espa&#0241;a:\n" );
   lcPtr->decimal_point = ",";
   lcPtr->thousands_sep = ".";
   lcPtr->grouping = "3";
   printf( "decimal_point = \"%s\"\n",     lcPtr->decimal_point );
   printf( "thousands_sep = \"%s\"\n",     lcPtr->thousands_sep );
   printf( "grouping = \"%s\"\n",          lcPtr->grouping );
 
   return 0;
}

Librerias C

Librerias ANSI C
   string.hcstring
   math.hcmath
   stdio.hcstdio
   time.hctime
   stdlib.hcstdlib
   ctype.hcctype
   locale.hclocale
   signal.hcsignal
   setjmp.hcsetjmp

Librerias Borland
   conio.h
   graphics.h