U E D R , A S I H C RSS

Our Major Lang IsCAndCPlus Plus/locale.h

locale.h

๋‹ด๋‹น : ํ—ˆ์ค€์ˆ˜
location specific information ๋ฅผ setting ํ•˜๋Š”๋ฐ ์œ ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋งคํฌ๋กœ

#define LC_ALL (integer constant expression) ๋ชจ๋“  ์นดํ…Œ๊ณ ๋ฆฌ์— ๋Œ€ํ•œ ๋กœ์ผ€์ผ ์„ค์ •์„ ์œ„ํ•œ ํ™˜๊ฒฝ๋ณ€์ˆ˜์ด๋‹ค
#define LC_COLLATE (integer constant expression) ์ŠคํŠธ๋ง(string)์˜ ์ •๋ ฌ ์ˆœ์„œ(sort order ๋˜๋Š” collation)๋ฅผ ์œ„ํ•œ ๋กœ์ผ€์ผ ์„ค์ •์„ ์œ„ํ•ด ์‚ฌ์šฉ
#define LC_CTYPE (integer constant expression) ๋ฌธ์ž ๋ถ„๋ฅ˜(์•ŒํŒŒ๋ฒณ, ์ˆซ์ž, ํ•œ๊ธ€ ๋˜๋Š” ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž ๋“ฑ๋“ฑ), ๋ณ€ํ™˜, ๋Œ€์†Œ๋ฌธ์ž ๋น„๊ต์„ ์œ„ํ•œ ๋กœ์ผ€์ผ ์„ค์ •์„ ์˜๋ฏธ
#define LC_MONETARY (integer constant expression) ๊ธˆ์•ก ํ‘œํ˜„(์ฒœ๋‹จ์œ„ ๊ตฌ๋ถ„ ๋ฌธ์ž, ์†Œ์ˆ˜์  ๋ฌธ์ž, ๊ธˆ์•ก ํ‘œ์‹œ ๋ฌธ์ž, ๊ทธ ์œ„์น˜ ๋“ฑ)์„ ์œ„ํ•œ ๋กœ์ผ€์ผ ์„ค์ •
#define LC_NUMERIC (integer constant expression) ๊ธˆ์•ก์ด ์•„๋‹Œ ์ˆซ์ž ํ‘œํ˜„(์ฒœ๋‹จ์œ„, ์†Œ์ˆ˜์ , ์ˆซ์ž ๊ทธ๋ฃนํ•‘ ๋“ฑ)์„ ์œ„ํ•œ ๋กœ์ผ€์ผ ์„ค์ •
#define LC_TIME (integer constant expression) ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ์˜ ํ‘œํ˜„(๋…„, ์›”, ์ผ์— ๋Œ€ํ•œ ๋ช…์นญ ๋“ฑ)์„ ์œ„ํ•œ ๋กœ์ผ€์ผ ์„ค์ • ์˜ˆ๋ฅผ ๋“ค์–ด strftime(), strptime()
#define NULL (either 0, 0L, or (void*)0) (0 in C++)

lconv ๊ตฌ์กฐ์ฒด

struct lconv {
ELEMENT "C" LOCALE LOCALE CATEGORY
char* currency_symbol; "" LC_MONETARY
char* decimal_point; "." LC_NUMERIC
char* grouping; "" LC_NUMERIC
char* int_curr_symbol; "" LC_MONETARY
char* mon_decimal_point; "" LC_MONETARY
char* mon_grouping; "" LC_MONETARY
char* mon_thousands_sep; "" LC_MONETARY
char* negative_sign; "" LC_MONETARY
char* positive_sign; "" LC_MONETARY
char* thousands_sep; "" LC_NUMERIC
char frac_digits; CHAR_MAX LC_MONETARY
char int_frac_digits; CHAR_MAX LC_MONETARY
char n_cs_precedes; CHAR_MAX LC_MONETARY
char n_sep_by_space; CHAR_MAX LC_MONETARY
char n_sign_posn; CHAR_MAX LC_MONETARY
char p_cs_precedes; CHAR_MAX LC_MONETARY
char p_sep_by_space; CHAR_MAX LC_MONETARY
char p_sign_posn; CHAR_MAX LC_MONETARY
};

ํ•จ์ˆ˜

ํ•จ์ˆ˜ ์„ค๋ช…
struct lconv* localeconv(void); lconv ๊ตฌ์กฐ์ฒด๋ฅผ ํ˜„์žฌ์˜ location setting ์— ๋งž๊ฒŒ ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค.
char* setlocale(int category, const char* locale); category์— ๋Œ€ํ•ด ๋กœ์ผ€์ผ locale์„ ์„ค์ •ํ•˜๊ณ  (๋ฌผ๋ก , ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋กœ์ผ€์ผ์ธ ๊ฒฝ์šฐ), ์„ค์ •๋œ ๋กœ์ผ€์ผ๊ฐ’์„ ๋ฆฌํ„ด.

setLocale ์˜ ์˜ˆ

~cpp
  #include <stddef.h>
     #include <locale.h>
     #include <stdlib.h>
     #include <string.h>
     
     void with_other_locale (char *new_locale, void (*subroutine) (int), int argument)
     {
       char *old_locale, *saved_locale;
     
       /* ํ˜„์žฌ ๋กœ์ผ€์ผ๋ช…์„ ์•Œ์•„๋‚ธ๋‹ค. */
       old_locale = setlocale (LC_ALL, NULL);
     
       /* setlocale()์˜ ์žฌํ˜ธ์ถœ ์˜ํ•ด ๋ณ€๊ฒฝ๋  ๊ฒƒ์„ ๋Œ€๋น„ํ•ด ๋กœ์ผ€์ผ ์ด๋ฆ„์„ ๋ฏธ๋ฆฌ ๋ณต์‚ฌํ•ด ๋‘”๋‹ค. */
       saved_locale = strdup (old_locale);
       if (saved_locale == NULL)
         fatal ("Out of memory");
     
       /* ๋กœ์ผ€์ผ์„ ๋ณ€๊ฒฝํ•˜๊ณ  subroutine์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. */
       setlocale (LC_ALL, new_locale);
       (*subroutine) (argument);
     
       /* ์›๋ž˜์˜ ๋กœ์ผ€์ผ๋กœ ๋ณต๊ท€ํ•œ๋‹ค. */
       setlocale (LC_ALL, saved_locale);
       free (saved_locale);
     }
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:57
Processing time 0.1692 sec