Namespaces
Variants

lconv

From cppreference.net
헤더 파일에 정의됨 <locale.h>
struct lconv ;

lconv 구조체는 C 로캘에 의해 정의된 숫자 및 통화 서식 규칙을 포함합니다. 이 구조체의 객체는 localeconv 를 사용하여 얻을 수 있습니다. lconv 의 멤버들은 char 타입과 char * 타입의 값들입니다. decimal_point 를 제외한 각 char * 멤버는 널 문자(즉, 빈 C 문자열)를 가리킬 수 있습니다. char 타입의 멤버들은 모두 음수가 아닌 숫자들로서, 현재 C 로캘에서 해당 값이 사용 불가능한 경우 CHAR_MAX 일 수 있습니다.

목차

멤버 객체

비통화 숫자 서식 매개변수

char* decimal_point
소수점으로 사용되는 문자
(public member object)
char* thousands_sep
소수점 앞의 숫자 그룹을 구분하는 데 사용되는 문자
(public member object)
char* grouping
요소들이 숫자 그룹의 크기를 나타내는 문자열
(public member object)

통화 숫자 형식 매개변수

char* mon_decimal_point
소수점으로 사용되는 문자
(public member object)
char* mon_thousands_sep
소수점 앞의 숫자 그룹을 구분하는 데 사용되는 문자
(public member object)
char* mon_grouping
요소들이 숫자 그룹의 크기를 나타내는 문자열
(public member object)
char* positive_sign
음수가 아닌 금액을 나타내는 데 사용되는 문자열
(public member object)
char* negative_sign
음수 금액을 나타내는 데 사용되는 문자열
(public member object)

지역 통화 숫자 형식 매개변수

char* currency_symbol
현재 C 로캘에서 통화 기호로 사용되는 심볼
(public member object)
char frac_digits
금전적 수량 표시 시 소수점 이하 자릿수
(public member object)
char p_cs_precedes
1 양수 값 앞에 currency_symbol 가 위치하면, 0 이면 뒤에 위치
(public member object)
char n_cs_precedes
1 음수 값 앞에 currency_symbol 가 위치하면, 0 이면 뒤에 위치
(public member object)
char p_sep_by_space
currency_symbol , positive_sign , 그리고 양수 금전 값 사이의 구분 방식을 나타냄
(public member object)
char n_sep_by_space
currency_symbol , negative_sign , 그리고 음수 금전 값 사이의 구분 방식을 나타냄
(public member object)
char p_sign_posn
양수 금전 값에서 positive_sign 의 위치를 나타냄
(public member object)
char n_sign_posn
음수 금전 값에서 negative_sign 의 위치를 나타냄
(public member object)

국제 통화 숫자 형식 지정 매개변수

char* int_curr_symbol
현재 C 로캘에서 국제 통화 이름으로 사용되는 문자열
(public member object)
char int_frac_digits
국제 통화 금액 표시 시 소수점 이하 자릿수
(public member object)
char int_p_cs_precedes
(C99)
1 이면 int_curr_symbol 이 음수가 아닌 국제 통화 금액 앞에 위치, 0 이면 뒤에 위치
(public member object)
char int_n_cs_precedes
(C99)
1 이면 int_curr_symbol 이 음수 국제 통화 금액 앞에 위치, 0 이면 뒤에 위치
(public member object)
char int_p_sep_by_space
(C99)
int_curr_symbol , positive_sign , 그리고 음수가 아닌 국제 통화 금액 사이의 구분 방식을 나타냄
(public member object)
char int_n_sep_by_space
(C99)
int_curr_symbol , negative_sign , 그리고 음수 국제 통화 금액 사이의 구분 방식을 나타냄
(public member object)
char int_p_sign_posn
(C99)
음수가 아닌 국제 통화 금액에서 positive_sign 의 위치를 나타냄
(public member object)
char int_n_sign_posn
(C99)
음수 국제 통화 금액에서 negative_sign 의 위치를 나타냄
(public member object)

grouping mon_grouping 이 가리키는 C-문자열의 문자들은 숫자 값에 따라 해석됩니다. 종결 문자 ' \0 ' 를 만나면, 마지막으로 확인된 값이 나머지 숫자들에 대해 반복되는 것으로 간주됩니다. CHAR_MAX 를 만나면 더 이상 숫자를 그룹화하지 않습니다. 일반적인 3자리씩 그룹화는 " \003 " 입니다.

p_sep_by_space , n_sep_by_space , int_p_sep_by_space , int_n_sep_by_space 값의 해석은 다음과 같습니다:

0 통화 기호와 값 사이에 공백 없음
1 부호가 통화 기호에 붙고, 값은 공백으로 구분됨
2 부호가 값에 붙음. 통화 기호는 공백으로 구분됨

p_sign_posn , n_sign_posn , int_p_sign_posn , int_n_sign_posn 값은 다음과 같이 해석됩니다:

0 값과 통화 기호를 괄호로 묶어 부호를 나타냄
1 값과 통화 기호 앞에 부호 표시
2 값과 통화 기호 뒤에 부호 표시
3 통화 기호 앞에 부호 표시
4 통화 기호 뒤에 부호 표시

예제

#include <locale.h>
#include <stdio.h>
int main(void)
{
    setlocale(LC_ALL, "ja_JP.UTF-8");
    struct lconv* lc = localeconv();
    printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol);
}

가능한 출력:

Japanese currency symbol: ¥(JPY )

참조문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.11/2 지역화 <locale.h> (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.11/2 지역화 <locale.h> (p: TBD)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.11/2 지역화 <locale.h> (p: 223)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.11/2 지역화 <locale.h> (p: 204)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.4 LOCALIZATION <locale.h>

참고 항목

현재 로캘의 숫자 및 통화 형식 세부 정보를 조회합니다
(함수)