LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
|
Definido en el encabezado
<locale.h>
|
||
|
#define LC_ALL /* implementation-defined */
|
||
|
#define LC_COLLATE /* implementation-defined */
|
||
|
#define LC_CTYPE /* implementation-defined */
|
||
|
#define LC_MONETARY /* implementation-defined */
|
||
|
#define LC_NUMERIC /* implementation-defined */
|
||
|
#define LC_TIME /* implementation-defined */
|
||
Cada una de las constantes macro anteriores se expande a expresiones constantes enteras con valores distintos que son adecuados para usar como primer argumento de setlocale .
| Constante | Explicación |
LC_ALL
|
selecciona la configuración regional completa de C |
LC_COLLATE
|
selecciona la categoría de ordenación de la configuración regional de C |
LC_CTYPE
|
selecciona la categoría de clasificación de caracteres de la configuración regional de C |
LC_MONETARY
|
selecciona la categoría de formato monetario de la configuración regional de C |
LC_NUMERIC
|
selecciona la categoría de formato numérico de la configuración regional de C |
LC_TIME
|
selecciona la categoría de formato de tiempo de la configuración regional de C |
Se pueden definir constantes macro adicionales, con nombres que comiencen con
LC_
seguido de al menos una letra mayúscula, en
locale.h
. Por ejemplo, la especificación POSIX requiere
LC_MESSAGES
(que controla, entre otras cosas,
perror
y
strerror
), ISO/IEC 30112:2014 (
borrador 2014
) define adicionalmente
LC_IDENTIFICATION
,
LC_XLITERATE
,
LC_NAME
,
LC_ADDRESS
,
LC_TELEPHONE
,
LC_PAPER
,
LC_MEASUREMENT
, y
LC_KEYBOARD
, los cuales son soportados por la biblioteca GNU C (excepto
LC_XLITERATE
).
Ejemplo
#include <locale.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main(void) { setlocale(LC_ALL, "en_US.UTF-8"); // la configuración regional C será el inglés habilitado para UTF-8 setlocale(LC_NUMERIC, "de_DE.utf8"); // el punto decimal será alemán setlocale(LC_TIME, "ja_JP.utf8"); // el formato de fecha/hora será japonés wchar_t str[100]; time_t t = time(NULL); wcsftime(str, 100, L"%A %c", localtime(&t)); wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str); }
Salida posible:
Number: 3,14 Date: 金曜日 2023年09月15日 20時04分14秒
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.11/3 Localización <locale.h> (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.11/3 Localización <locale.h> (p: TBD)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.11/3 Localización <locale.h> (p: 224)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.11/3 Localización <locale.h> (p: 205)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.4 LOCALIZACIÓN <locale.h>
Véase también
|
obtiene y establece la configuración regional actual de C
(función) |
|
|
Documentación de C++
para
categorías de configuración regional
|
|