LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
|
헤더 파일에 정의됨
<locale.h>
|
||
|
#define LC_ALL /* 구현 정의 */
|
||
|
#define LC_COLLATE /* 구현 정의 */
|
||
|
#define LC_CTYPE /* 구현 정의 */
|
||
|
#define LC_MONETARY /* 구현 정의 */
|
||
|
#define LC_NUMERIC /* 구현 정의 */
|
||
|
#define LC_TIME /* 구현 정의 */
|
||
위의 각 매크로 상수들은 정수 상수 표현식으로 확장되며, 각각 고유한 값을 가지며 setlocale 함수의 첫 번째 인수로 사용하기에 적합합니다.
| 상수 | 설명 |
LC_ALL
|
전체 C 로케일을 선택합니다 |
LC_COLLATE
|
C 로케일의 문자열 정렬 범주를 선택합니다 |
LC_CTYPE
|
C 로케일의 문자 분류 범주를 선택합니다 |
LC_MONETARY
|
C 로케일의 통화 형식 범주를 선택합니다 |
LC_NUMERIC
|
C 로케일의 숫자 형식 범주를 선택합니다 |
LC_TIME
|
C 로케일의 시간 형식 범주를 선택합니다 |
추가 매크로 상수들은,
LC_
로 시작하고 그 뒤에 적어도 하나의 대문자가 오는 이름을 가지며,
locale.h
에 정의될 수 있습니다. 예를 들어, POSIX 명세는
LC_MESSAGES
(특히
perror
및
strerror
를 제어함)를 요구하며, ISO/IEC 30112:2014 (
2014 초안
)은 추가로
LC_IDENTIFICATION
,
LC_XLITERATE
,
LC_NAME
,
LC_ADDRESS
,
LC_TELEPHONE
,
LC_PAPER
,
LC_MEASUREMENT
, 그리고
LC_KEYBOARD
를 정의하며, 이들은 GNU C 라이브러리에서 지원됩니다(
LC_XLITERATE
제외).
예제
#include <locale.h> #include <stdio.h> #include <time.h> #include <wchar.h> int main(void) { setlocale(LC_ALL, "en_US.UTF-8"); // C locale은 UTF-8 지원 영어로 설정됨 setlocale(LC_NUMERIC, "de_DE.utf8"); // 소수점은 독일식으로 표시 setlocale(LC_TIME, "ja_JP.utf8"); // 날짜/시간 형식은 일본식으로 표시 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); }
가능한 출력:
Number: 3,14 Date: 金曜日 2023年09月15日 20時04分14秒
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.11/3 지역화 <locale.h> (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.11/3 지역화 <locale.h> (p: TBD)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.11/3 지역화 <locale.h> (p: 224)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.11/3 지역화 <locale.h> (p: 205)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.4 LOCALIZATION <locale.h>
참고 항목
|
현재 C 로케일을 가져오고 설정함
(함수) |
|
|
C++ documentation
for
locale categories
|
|