19. Áö¿ª°ú ¼¼°èÈ.
´Ù¸¥ ³ª¶ó¿Í ¹®¸íÀº ¼ÒÅëÇϱâ À§ÇÑ ´Ù¾çÇÑ °ü½ÀÀ» °®´Â´Ù. ÀÌµé °ü½ÀµéÀº ³¯Â¥¿Í ½Ã°£À» Ç¥ÇöÇϱâ À§ÇÑ Çü½Äó·³ ¾ÆÁÖ °£´ÜÇÑ °Í¿¡¼ºÎÅÍ ¸Å¿ì º¹ÀâÇÑ °Í±îÁö ¼ÒÅëµÇ´Â ¾ð¾îÀÇ ¹üÀ§¸¦ °®´Â´Ù.
¼ÒÇÁÆ®¿þ¾îÀÇ ¼¼°èÈ´Â »ç¿ëÀÚ°¡ ÁÁ¾ÆÇÏ´Â °ü½Àµé¿¡ ÀûÀÀÇϵµ·Ï ÇÁ·Î±×·¥ ÇÏ´Â °ÍÀ» ÀǹÌÇÑ´Ù. ANSI C¿¡¼, ¼¼°èÈ´Â Áö¿ªÀ» °¡Áö°í ÀÛ¾÷µÈ´Ù. °¢ Áö¿ªÀº °ü½ÀµéÀÇ ÁýÇÕ¿¡¼ °¢ ¸ñÀûÀ» À§ÇØ ¼±Åà µÈ ÇѰ¡Áö °ü½ÀÀ» ÁöÁ¤ÇÑ´Ù. »ç¿ëÀÚ´Â Áö¿ªÀ» ¼±ÅÃÇÔÀ¸·Î½á(ȯ°æº¯¼ö¸¦ °ÅÃļ) °ü½ÀÀÇ ÁýÇÕÀ» ¼±Åà ÇÑ´Ù.
¸ðµç ÇÁ·Î±×·¥µéÀº ±×µéÀÇ È¯°æÀÇ ÀÏºÎ·Î½á ¼±ÅÃµÈ Áö¿ªÀ» »ó¼Ó¹Þ´Â´Ù. ÁÖ¾îÁø ÇÁ·Î±×·¥Àº ¼±ÅÃµÈ Áö¿ª¿¡ µû¶ó¼ ¸¸µé¾îÁ³°í, ±×µéÀº »ç¿ëÀÚ¿¡ ÀÇÇØ ¼±ÅÃµÈ °ü½ÀÀ» µû¸¦ °ÍÀÌ´Ù.
19.1 Áö¿ªÀÌ °¡Áø È¿°ú.
°¢ Áö¿ªÀº ´ÙÀ½ÀÇ °ÍÀ» Æ÷ÇÔÇØ¼, ¿©·¯ °¡Áö ¸ñÀûÀ» À§ÇÑ °ü½ÀµéÀ» Á¤ÇÑ´Ù.
둁 ¹«½¼ ´ÙÁß¹ÙÀÌÆ® ¹®ÀÚ ½ÃÄö½º°¡ À¯¿ëÇѰÍÀ̰í, ±×µéÀÌ ¾î¶»°Ô ÇØ¼®µÇ´Â°¡ ( 18Àå [Extended Characters] 249 ÆäÀÌÁö ÂüÁ¶.)
둁 Áö¿ª ¹®ÀÚ ÁýÇվȿ¡ ÀÖ´Â ¹®ÀÚµéÀÇ ºÐ·ù°¡ ¾ËÆÄºªÃ³·³ µÇ¾îÀÖ´ÂÁö, ±×¸®°í ´ë, ¼Ò¹®ÀÚ º¯È¯ °ü½À ÀÌ ÀÖ´ÂÁö.
둁 Áö¿ª ¾ð¾î¿Í ¹®ÀÚ ÁýÇÕÀ» À§ÇÑ ´ëÁ¶ ½ÃÄö½º(5.6Àý [Collating Functions]51 ÆäÀÌÁö ÂüÁ¶.
둁 ¼ö(numbers)¿Í ÅëÈ·®(currency amounts)ÀÇ Çü½Ä ( 19.6Àý [Numeric Formatting] 262 ÆäÀÌÁö ÂüÁ¶.
둁 ³¯Â¥¿Í ½Ã°£ÀÇ Çü½Ä ( 17.2.4Àý [Formatting Date and Time] 239ÆäÀÌÁö ÂüÁ¶.
둁 ¿¡·¯ ¸Þ½ÃÁö¸¦ Æ÷ÇÔÇÑ, Ãâ·ÂÀ» À§Çؼ »ç¿ëÇÏ´Â ¾ð¾î´Â ¹«¾ùÀΰ¡.( C ¶óÀ̺귯¸®´Â ´ç½ÅÀÌ ÀÌ°Í À» ÇàÇϵµ·Ï ¾ÆÁ÷Àº µµ¿òÀ» ÁÖÁö¾Ê´Â´Ù. )
둁 ¿¹/¾Æ´Ï¿À ÀÇ Áú¹®µé¿¡ »ç¿ëÀÚÀÇ ´äº¯À» À§ÇØ »ç¿ëÇÏ´Â ¾ð¾î´Â ¹«¾ùÀΰ¡.
둁 ÈξÀ º¹ÀâÇÑ »ç¿ëÀÚ ÀÔ·ÂÀ» À§ÇØ »ç¿ëÇÏ´Â ¾ð¾î´Â ¹«¾ùÀΰ¡. ( C ¶óÀ̺귯¸®´Â ¾ÆÁ÷±îÁö À̰Ϳ¡ ´ëÇÑ µµ¿òÀ» ÁÖÁö ¸øÇϰí ÀÖ´Ù.)
Á¤ÇØÁø Áö¿ª¿¡ ÀûÀÀÇÏ´Â ¾î¶² °ÍÀº ¶óÀ̺귯¸® ¼ºê·çƾµé¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î ´Ù·ç¾îÁø´Ù. ¿¹¸¦µé ¾î, ¼±ÅÃµÈ Áö¿ªÀÇ ´ëÁ¶½ÃÄö½º¸¦ »ç¿ëÇÏ¿© ¼ø¼´ë·Î ¸ÂÃâ Çʿ䰡 ÀÖ´Â ¸ðµç ÇÁ·Î±×·¥µéÀº ºñ±³ ¹®ÀÚ ¿¿¡ strcoll À̳ª strxfrmÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
Áö¿ªÀÇ ´Ù¸¥°ÍµéÀº ¶óÀ̺귯¸®ÀÇ ÀÌÇØ·Â ¹Û¿¡ ÀÖ´Ù. ¿¹¸¦µé¾î, ¶óÀ̺귯¸®´Â ´ç½Å ÇÁ·Î±×·¥ÀÇ Ãâ·Â ¸Þ½ÃÁö¸¦ ´Ù¸¥ ¾ð¾î·Î ÀÚµ¿ÀûÀ¸·Î ÇØ¼®ÇÒ ¼ö ¾ø´Ù. »ç¿ëÀÚ°¡ ÁÁ¾ÆÇÏ´Â ¾ð¾î·Î Ãâ·ÂÀ» Áö¿øÇÏ´Â À¯ ÀÏÇÑ ¹æ¹ýÀº Á÷Á¢ ÇÁ·Î±×·¥ ÇÏ´Â °ÍÀÌ´Ù.( ¿ì¸®´Â À̰ÍÀ» ´õ ½±°Ô ÇϱâÀ§ÇÑ µµ±¸µéÀÌ ÁÖ¾îÁö±â¸¦ Èñ ¸ÁÇÑ´Ù. )
ÀÌ ÀåÀº ÇöÀçÀÇ Áö¿ªÀ» °»½ÅÇÒ ¼ö ÀÖ°í, ±×°ÍÀÇ ¸ÞÄ«´ÏÁòÀ» ¼³¸íÇÑ´Ù. Á¤ÇØÁø ¶óÀ̺귯¸® ÇÔ¼öµé»ó ¿¡¼ ÇöÀç Áö¿ªÀÇ È¿°úµéÀº °¢°¢ÀÇ ÇÔ¼öµé¿¡ ´ëÇÑ ¼³¸í¿¡¼ Á»´õ »ó¼¼ÇÏ°Ô ¼³¸íµÇ¾îÁø´Ù.
19.2 Áö¿ª ¼±ÅÃÇϱâ.
»ç¿ëÀÚ°¡ ÇÑ Áö¿ªÀ» ¼±ÅÃÇϱâ À§ÇÑ °¡Àå °£´ÜÇÑ ¹æ¹ýÀº ȯ°æº¯¼ö LANG¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ´Ù. ÀÌ°Í Àº ¸ðµç ¸ñÀûÀ» À§Çؼ »ç¿ëÀÚ¿¡°Ô ´ÜÀÏÇÑ Áö¿ªÀ» ÁöÁ¤ÇÑ´Ù. ¿¹¸¦µé¾î, ÇÑ »ç¿ëÀÚ°¡ ½ºÆäÀο¡¼ °¡ Àå Ç¥ÁØÀÎ °ü½ÀÀ» »ç¿ëÇϱâ À§Çؼ `espana-castellano'¶ó°í À̸§À̾îÁø °¡»ó Áö¿ªÀ» ¼±ÅÃÇÒ ¼ö ÀÖ ´Ù.
Áö¿ªµéÀÇ ÁýÇÕÀº »ç¿ëÀÚ°¡ »ç¿ëÇϰí ÀÖ´Â ¿î¿µÁ¦Ã¼¿¡ ÀÇÁ¸ÇÏ¿© Áö¿øµÇ°í, ±×¸®°í ±×µéÀÇ À̸§µéÀ» °¡Áö°í ÀÛ¾÷ÇÑ´Ù. ¿ì¸®´Â `C' ¶Ç´Â `POSIX'¶ó°í ºÒ¸®´Â Ç¥ÁØ Áö¿ªÀ» À§ÇÑ °ÍÀ» Á¦¿ÜÇϰí´Â, ¹«½¼ Áö¿ªµéÀÌ Á¸ÀçÇÒ°ÍÀÎÁö¿¡ ´ëÇØ¼ ¾î´À ¾à¼Óµµ ÇÒ ¼ö ¾ø´Ù. »ç¿ëÀÚ´Â ´Ù¸¥ ¸ñÀûÀ¸·Î ´Ù¸¥ Áö¿ªµéÀ» ÁöÁ¤ÇϱâÀ§ÇÑ ¿É¼ÇµéÀ» °¡Áø´Ù._½ÇÁ¦·Î, ¿©·¯°³ÀÇ Áö¿ªµéÀÇ È¥ÇÕÇÏ¿© ¼±ÅÃÇÑ´Ù.
¿¹¸¦µé¾î, »ç¿ëÀÚ°¡ ¿©·¯ °¡Áö ¸ñÀûÀ» À§Çؼ Áö¿ª `espana-castellano'¸¦ ¼±ÅÃÇÏ¿´Áö¸¸, ÅëÈÀÇ Çü ½ÄÀ» À§Çؼ´Â Áö¿ª 'usa-english'¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº ÅëÈ·®ÀÌ ¹Ì±¹ ´Þ·¯·Î Ç¥ÇöµÇÁö¸¸ ¸¸ ÀÏ ±× »ç¿ëÀÚ°¡ ½ºÆäÀο¡¼ ÀÏÇϰí ÀÖ°í, ½ºÆäÀξ »ç¿ëÇÏ´Â ¹Ì±¹ÀÎÀ̶ó¸é ¶æÀÌ ÅëÇÒ°Í´Ù.
¸ðµç Áö¿ªµéó·³ `espana-castellano' ¿Í `usa-english' ÀÇ µÎ Áö¿ªÀº ¾î¶² Áö¿ªµé¿¡ Àû¿ëÇϱâ À§ÇÑ ¸ðµç ¸ñÀûµéÀ» À§ÇÑ °ü½ÀÀ» Æ÷ÇÔÇÑ´Ù. ±×·¸Áö¸¸, »ç¿ëÀÚ´Â ±×µé ¸ñÀûÁß¿¡¼ ƯÁ¤ÇÑ ¸î°¡Áö ¸ñÀûÀ» À§ ÇØ¼´Â ´Ù¸¥ Áö¿ªÀ» »ç¿ëÇϵµ·Ï ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.
19.3 Áö¿ªÀÌ ¹ÌÄ¡´Â Ȱµ¿ÀÇ ¹üÁÖ.
Áö¿ªÀ» Á¦°øÇÏ´Â ¸ñÀûÀº ¹üÁ־ȿ¡ ¹¾îÁö¹Ç·Î, »ç¿ëÀÚ³ª ÇÁ·Î±×·¥Àº µ¶¸³ÀûÀ¸·Î °¢ ¹üÁÖ¸¦ À§Çؼ ±× Áö¿ªÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ¹üÁÖµéÀÇ ¸®½ºÆ®ÀÌ´Ù; °¢°¢ÀÇ À̸§Àº »ç¿ëÀÚ°¡ ¼³Á¤ÇÒ ¼ö Àִ ȯ°æº¯¼ö, ±×¸®°í setlocale¿¡ Àμö·Î¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ÅÅ©·Î À̸§ÀÌ´Ù.
LC_COLLATE
ÀÌ ¹üÁÖ´Â ¹®ÀÚ¿ÀÇ ´ëÁ¶¸¦ À§Çؼ Á¦°øµÈ´Ù(ÇÔ¼ö strcoll°ú strxfrm); 5.6Àý [Collation Functions] 51 ÆäÀÌÁö ÂüÁ¶.
LC_CTYPE
ÀÌ ¹üÁÖ´Â ¹®ÀÚµéÀÇ ºÐ·ù¿Í °ü½À, ±×¸®°í ´ÙÁß¹ÙÀÌÆ®¿Í ¿ÍÀ̵å ij¸¯Å͵鿡°Ô Á¦°øµÈ´Ù; 4Àå [Characters Handling]41ÆäÀÌÁö¿Í 18Àå [Extended Characters] 249 ÆäÀÌÁö ÂüÁ¶.
LC_MONETARY
ÀÌ ¹üÁÖ´Â ÅëÈÀÇ °ªµéÀ» Çü½ÄÈÇϴµ¥ Á¦°øµÈ´Ù. 19.6Àý [Numeric Formatting] 262 ÆäÀÌÁö ÂüÁ¶.
LC_NUMERIC
ÀÌ ¹üÁÖ´Â ÅëȰ¡ ¾Æ´Ñ ¼ýÀÚ°ªµéÀ» Çü½ÄÈÇϴµ¥ Á¦°øµÈ´Ù; 19.6Àý [Numeric Formattin] 262 ÆäÀÌÁö ÂüÁ¶.
LC_TIME
ÀÌ ¹üÁÖ´Â ³¯Â¥¿Í ½Ã°£°ªµéÀ» Çü½ÄÈÇϴµ¥ Á¦°øµÈ´Ù; 17.2.4Àý [Formattin Date and Time] 239 Æä ÀÌÁö ÂüÁ¶.
LC_ALL
À̰ÍÀº ȯ°æº¯¼ö°¡ ¾Æ´Ï´Ù; ±×°ÍÀº ¸ðµç ¸ñÀûµéÀ» À§Çؼ ´ÜÀÏÇÑ Áö¿ªÀ» ¼³Á¤ÇÏ´Â setlocale¿¡¼ »ç ¿ëÇÒ ¼ö ÀÖ´Â ¸ÅÅ©·ÎÀÌ´Ù.
LANG
¸¸ÀÏ ÀÌ È¯°æº¯¼ö°¡ Á¤ÀǵǸé, ±× °ªÀº À§ÀÇ º¯¼öµé¿¡ ÀÇÇØ ¹«½ÃµÇ´Â °ÍÀ» Á¦¿ÜÇϰí´Â ¸ðµç ¸ñÀûµé À» À§ÇØ »ç¿ëÀÚ¿¡°Ô Áö¿ªÀ» ÁöÁ¤ÇÑ´Ù.
19.4 ÇÁ·Î±×·¥Àº Áö¿ªÀ» ¾î¶»°Ô ¼³Á¤Çϴ°¡.
C ÇÁ·Î±×·¥Àº ±× ÇÁ·Î±×·¥ÀÌ ½ÃÀÛÇÒ ¶§ Áö¿ª ȯ°æº¯¼öµéÀ» »ó¼Ó¹Þ´Â´Ù. À̰ÍÀº ÀÚµ¿ÀûÀ¸·Î ¹ß»ýÇÑ ´Ù. ±×·¸Áö¸¸, ±×µé º¯¼öµéÀÌ ¶óÀ̺귯¸® ÇÔ¼öµé¿¡ ÀÇÇØ »ç¿ëµÈ Áö¿ªÀº ÀÚµ¿ÀûÀ¸·Î Á¦¾îÇÏÁö ¾Ê±â ¶§¹®¿¡, ANSI C´Â ¸ðµç ÇÁ·Î±×·¥À» µðÆúÆ®·Î Ç¥ÁØ `C'Áö¿ªÀ¸·Î ½ÃÀÛÇϰÔÇÑ´Ù. ȯ°æº¯¼ö¿¡ ÀÇÇØ Á¤ ÇØÁø Áö¿ªµéÀ» »ç¿ëÇϱâ À§Çؼ´Â, ´ç½ÅÀº setlocaleÀ» È£ÃâÇØ¾ß¸¸ ÇÑ´Ù. ±×°ÍÀ» ´ÙÀ½°ú °°ÀÌ È£ÃâÇÏ ¶ó.
setlocale (LC_ALL, "");
Àû´çÇÑ È¯°æº¯¼öµé¿¡ ±âÃÊÇÑ Áö¿ªÀ» ¼±ÅÃÇϵµ·Ï ÇÑ´Ù.
´ç½ÅÀº ¶ÇÇÑ ÀϹÝÀûÀ¸·Î »ç¿ëÇϰųª ¶Ç´Â Á¤ÇØÁø ¹üÁÖ¸¦ À§ÇÑ, ƯÁ¤ÇÑ Áö¿ªÀ» ¼±ÅÃÇϱâ À§Çؼ setlocale¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ Àý¿¡ ÀÖ´Â ½Éº¼µéÀº Çì´õÆÄÀÏ `locale.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù.
ÇÔ¼ö : char *setlocale (int category, const char *locale)
setlocale ÇÔ¼ö´Â Áö¿ª¿¡ ´ëÇÑ ¹üÁÖ category¸¦ À§Çؼ ÇöÀçÀÇ Áö¿ªÀ» ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ ¹üÁÖ°¡ LC_ALL À̸é, À̰ÍÀº ¸ðµç ¸ñÀûÀ» À§Çؼ ±× Áö¿ªÀ» ÁöÁ¤ÇÔÀ» ¸»ÇÑ´Ù. ¹üÁÖÀÇ ´Ù¸¥ °¡´ÉÇÑ °ªµéÀº °³º°Àû ¸ñÀûÀ¸·Î ÁöÁ¤ÇÑ´Ù. (19.3Àý [Locale Categories] 260 ÆäÀÌÁö ÂüÁ¶. )
´ç½ÅÀº localeÀμö¿¡ ³Î Æ÷ÀÎÅ͸¦ »ç¿ëÇÔÀ¸·Î¼, ÇöÀçÀÇ Áö¿ªÀ» ¾Ë¾Æ³»µµ·Ï ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ ´Ù. ÀÌ °æ¿ì¿¡, setlocale´Â ¹üÁÖ category¸¦ À§Çؼ ¼±ÅÃµÈ ÇöÀçÀÇ Áö¿ªÀÇ À̸§À» °¡Áø ¹®ÀÚ¿À» ¸® ÅÏÇÑ´Ù. setlocale¿¡ ÀÇÇØ ¸®ÅÏµÈ ¹®ÀÚ¿Àº ´ÙÀ½¿¡ À̾îÁö´Â È£Ãâ¿¡ ÀÇÇØ µ¡¾º¿öÁú ¼ö ÀÖÀ¸¹Ç·Î, ¸¸ÀÏ ´ç½ÅÀÌ Àü¿¡ È£ÃâµÈ setlocaleÀÇ °á°ú¸¦ ÀúÀåÇϱ⸦ ¿øÇÑ´Ù¸é ´ç½ÅÀº ±× ¹®ÀÚ¿ÀÇ º¹»çº»À» ¸¸µé¾î¾ß ÇÒ °ÍÀÌ´Ù( 5.4Àý [Copying and Concatenation] 46 ÆäÀÌÁö ÂüÁ¶.)( Ç¥ÁØ ¶óÀ̺귯¸®´Â °áÄÚ setlocale ±× ÀÚü¸¦ È£ÃâÇÏÁö ¾Êµµ·Ï º¸ÁõµÈ´Ù. )
´ç½ÅÀº setlocale¿¡ ÀÇÇØ ¸®ÅÏµÈ ¹®ÀÚ¿À» °»½ÅÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ±×°ÍÀº Àü¿¡ È£ÃâµÈ setlocale¿¡¼ Àμö·Î½á »ç¿ëÇß´ø ¹®ÀÚ¿°ú µ¿ÀÏÇÏ°Ô µÉ °ÍÀÌ´Ù.
´ç½ÅÀÌ ¹üÁÖ LC_ALLÀ» À§Çؼ ÇöÀçÀÇ Áö¿ªÀ» ÀÐÀ» ¶§, ±× °ªÀº ¸ðµç ¹üÁÖ¸¦ À§Çؼ ¼±ÅÃµÈ Áö¿ªµé ÀÇ ÀüüÁ¶ÇÕÀ¸·Î ±âÈ£ÈÇÑ´Ù. ÀÌ °æ¿ì, ±×°ªÀº ´ÜÁö ´ÜÀÏÇÑ Áö¿ªÀ̸§ÀÌ ¾Æ´Ï´Ù. ½ÇÁ¦·Î, ±×°ÍÀÌ
¹«¾ùÀÏÁö¿¡ ´ëÇØ¼ ¿ì¸®´Â ¸»ÇÒ ¼ö ¾ø´Ù. ±×·¯³ª ¸¸ÀÏ ´ç½ÅÀÌ setlocaleÀÇ ´ÙÀ½ È£Ãâ¿¡ LC_ALL°ú ÇÔ²² °°Àº "Áö¿ªÀ̸§"À» ÁöÁ¤Çϸé, ±× ÇÔ¼ö´Â ¼±ÅÃµÈ Áö¿ª°ú °°Àº Á¶ÇÕÀ» ÀúÀåÇÑ´Ù. localeÀμö°¡ ³Î Æ÷ÀÎÅͰ¡ ¾Æ´Ò ¶§, setlocale¿¡ ÀÇÇØ ¸®ÅÏµÈ ¹®ÀÚ¿Àº »õ·ÎÀÎ °»½ÅµÈ Áö¿ªÀ» ¹Ý¿µÇÑ´Ù.
¸¸ÀÏ ´ç½ÅÀÌ loclae¿¡ ºñ¾îÀÖ´Â ¹®ÀÚ¿À» ÁöÁ¤Çϸé, À̰ÍÀº Àû´çÇÑ È¯°æº¯¼ö¸¦ ÀÐ°í ±× °ªÀ» ¹üÁÖ¸¦ À§ÇÑ Áö¿ªÀ» ¼±ÅÃÇϴµ¥ »ç¿ëÇÑ´Ù´Â ÀǹÌÀÌ´Ù. ¸¸ÀÏ ´ç½ÅÀÌ À¯¿ëÇÏÁö ¾ÊÀº Áö¿ªÀ̸§À» ÁöÁ¤Çϸé, setlocale´Â ³Î Æ÷ÀÎÅ͸¦ ¸®ÅÏÇϰí ÇöÀçÀÇ Áö¿ªÀº º¯ÈµÇÁö ¾Ê´Â´Ù.
´ÙÀ½Àº ´ç½ÅÀÌ »õ·Î¿î Áö¿ªÀ¸·Î ÀϽÃÀûÀÎ º¯È¯À» À§Çؼ setlocale¸¦ ¾î¶»°Ô »ç¿ëÇÒ°ÍÀÎÁö¿¡ ´ëÇÑ ¿¹Á¦ÀÌ´Ù.
#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 (old_locale == NULL)
fatal ("Out of memory");
/* ÀÌÁ¦ ±× Áö¿ªÀ» º¯°æÇϰí, ±×°ÍÀ¸·Î ¾î¶² ÀڷḦ Ç϶ó */
setlocale (LC_ALL, new_locale);
(*subroutine) (argument);
/* ¿ø·¡ÀÇ Áö¿ªÀ» ´Ù½Ã ÀúÀåÇ϶ó */
setlocale (LC_ALL, saved_locale);
free (saved_locale);
}
À̽ļº ³ëÆ® : ¾î¶² ANSI C ½Ã½ºÅÛµéÀº ºÎ°¡ÀûÀÎ Áö¿ª ¹üÁÖµéÀ» Á¤ÀÇÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. À̽ļº À» À§Çؼ, `LC_'·Î ½ÃÀÛÇÏ´Â ¾î´À ½Éº¼Àº `locale.h'¿¡ Á¤ÀǵǾú´Ù°í »ý°¢ÇÏÀÚ.
19.5 Ç¥ÁØ Áö¿ªµé.
¸ðµç ¿î¿µÃ¼Á¦»ó¿¡¼ ´ç½ÅÀÌ ¹ß°ßÇÒ ¼ö ÀÖ´Â Áö¿ªÀÇ À̸§Àº ¿ÀÁ÷ ´ÙÀ½ÀÇ ¼¼°¡Áö »ÓÀÌ´Ù:
"C"
À̰ÍÀº Ç¥ÁØ C Áö¿ªÀÌ´Ù. ±×°ÍÀÌ Á¦°øÇϰí ÀÖ´Â ¼Ó¼º°ú ÇൿÀº ANSI C Ç¥ÁØ¿¡ ÀÇÇØ ÁöÁ¤µÇ¾ú´Ù. ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ ½ÃÀÛµÉ ¶§, ±×°ÍÀº óÀ½¿¡ µðÆúÆ®·Î ÀÌ Áö¿ªÀ» »ç¿ëÇÑ´Ù.
"POSIX"
À̰ÍÀº Ç¥ÁØ POSIX Áö¿ªÀÌ´Ù. ÀϹÝÀûÀ¸·Î À̰ÍÀº Ç¥ÁØ C Áö¿ªÀ» À§ÇÑ ´Ù¸¥À¸·Î ¿©°ÜÁö°í ÀÖ´Ù.
" "
ÀÌ ºó(empty) À̸§Àº ȯ°æº¯¼öµé¿¡ ±âÃÊÇÑ Áö¿ªÀ» ¼±ÅÃÇÔÀ» ¸»ÇÑ´Ù. 19.3Àý [Locale Categories] 260 ÆäÀÌÁö ÂüÁ¶.
À̸§À» °¡Áø Áö¿ªµéÀ» Á¤ÀÇÇÏ°í ±¸µ¿ÇÏ´Â °ÍÀº º¸Åë ´ç½ÅÀÌ ¼ÓÇÑ ½Ã½ºÅÛÀÇ ½Ã½ºÅÛ°ü¸®ÀÚÀÇ Ã¥ÀÓÀÌ ´Ù(¶Ç´Â GNU C ¶óÀ̺귯¸®¸¦ ±¸µ¿Çß´ø »ç¶÷. ) ¾î¶² ½Ã½ºÅÛµéÀº »ç¿ëÀÚ°¡ Áö¿ªÀ» ¸¸µéµµ·Ï Çã¿ëÇÒ ¼öµµ ÀÖÁö¸¸, ¿ì¸®´Â À̰Ϳ¡ ´ëÇØ¼ ³íÀÇÇÏÁö ¾Ê°Ú´Ù.
¸¸ÀÏ ´ç½ÅÀÇ ÇÁ·Î±×·¥ÀÌ `C'Áö¿ª°ú´Â ´Ù¸¥ ¾î¶² °ÍÀ» »ç¿ëÇÒ Çʿ䰡 ÀÖ´Ù¸é, ¸í¹éÇÏ°Ô ¾î¶² ºñ-Ç¥ ÁØ Áö¿ªÀ» À̸§À¸·Î ÁöÁ¤Çϱ⠺¸´Ù´Â, ȯ°æº¯¼ö¸¦ ÅëÇØ¼ »ç¿ëÀÚ°¡ Á¤ÇÑ Áö¿ªÀ» µû¸£µµ·Ï ÇÑ´Ù¸é Á» ´õ À̽ļºÀÌ ÀÖ´Â ÇÁ·Î±×·¥ÀÌ µÉ °ÍÀÌ´Ù. ´Ù¸¥ ±â°è¿¡¼´Â ÀÚ½ÅÀÌ ±¸µ¿ÇÑ Áö¿ª°ú´Â ´Ù¸¥ Áö¿ªµéÀÇ ÁýÇÕÀ» °¡ÁúÁöµµ ¸ð¸¥´Ù´Â °ÍÀ» ±â¾ïÇ϶ó.
19.6 ¼ýÀÚÀÇ Çü½ÄÈ.
´ç½ÅÀÌ ÇöÀç Áö¿ªÀÇ °ü½ÀÀ» »ç¿ëÇØ¼ ¼ýÀÚ³ª, ÅëÈ·®À» Çü½ÄÈÇÏ±æ ¿øÇÑ´Ù¸é, ±×°ÍÀ» ¾î¶»°Ô Çü½ÄÈ ÇÒ°ÍÀÎÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òµµ·Ï localeconv ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. localeconv ÇÔ¼ö´Â Çì´õÆÄÀÏ `locale.h'¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù.
ÇÔ¼ö : struct lconv * localeconv (void)
localeconv ÇÔ¼ö´Â ÇöÀçÀÇ Áö¿ª¿¡¼ ¼ýÀÚ¿Í ÅëȰªÀÌ ¾î¶»°Ô Çü½ÄȵǴÂÁö¿¡ ´ëÇÑ Á¤º¸°¡ Æ÷ÇÔµÈ ¿ä ¼Ò¸¦ °¡Áø ±¸Á¶Ã¼¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. ´ç½ÅÀº ±× ±¸Á¶Ã¼³ª ³»¿ëÀ» º¯°æÇÒ ¼ö ¾ø´Ù. ±¸Á¶ ü´Â localecnovÀÇ ´ÙÀ½ È£Ãâ¿¡ ÀÇÇØ µ¡¾º¿öÁö°Å³ª, È£ÃâµÈ setlocale¿¡ ÀÇÇØ º¯°æµÇÁö¸¸, ¶óÀ̺귯¸® ¿¡ ÀÖ´Â ¾î´À ´Ù¸¥ ÇÔ¼öµéÀº ÀÌ °ªÀ» º¯°æÇÒ ¼ö ¾ø´Ù.
µ¥ÀÌÅÍ Å¸ÀÔ : struct lconv
À̰ÍÀº localeconv¿¡ ÀÇÇØ ¸®ÅÏµÈ °ªÀÇ µ¥ÀÌÅÍŸÀÔÀÌ´Ù.
¸¸ÀÏ ±¸Á¶Ã¼ struct lconvÀÇ ¸â¹ö°¡ char ÇüÀ» °¡Áø´Ù¸é, ±×¸®°í ±× °ªÀÌ CHAR_MAX ¶ó¸é, ±×°ÍÀº ÇöÀçÀÇ Áö¿ªÀ» À§ÇÑ ÆÄ¶ó¹ÌÅÍ¿¡ ¾Æ¹«·± °ªÀÌ ¾øÀ½À» ÀǹÌÇÑ´Ù.
19.61 ÀϹÝÀûÀÎ ¼ýÀÚ Çü½ÄÈ ÆÄ¶ó¹ÌÅÍ.
´ÙÀ½Àº struct lconvÀÇ Ç¥ÁØ ¸â¹öµéÀÌ´Ù;´Ù¸¥ °ÍÀÌ ÀÖÀ» ¼öµµ ÀÖ´Ù.
char *decimal_point
char *mon_decimal_point
ÅëÈ·®ÀÌ ¾Æ´Ñ°Í°ú ÅëÈ·®À» Çü½ÄÈ Çϴµ¥ »ç¿ëµÇ´Â ¼Ò¼öÁ¡ ºÐ¸®ÀÚ(separators)ÀÌ´Ù. `C' Áö¿ª¿¡¼ ´Â, ¼Ò¼öÁ¡ÀÇ °ªÀº "."À̰í, mon_decimal_pointÀÇ °ªÀº ""ÀÌ´Ù.
char *thousands_sep
char *mon_thousands_sep
ÅëÈ·®ÀÌ ¾Æ´Ñ°Í°ú ÅëÈ·®À» Çü½ÄÈÇÒ ¶§, ¼Ò¼öÁ¡ ¿ÞÂÊÀÇ ½ÊÁø¼öÀÇ ÇѰè±×·ì¿¡ »ç¿ëµÇ´Â ºÐ¸®ÀÚ (separators)ÀÌ´Ù. `C' Áö¿ª¿¡¼, ÀÌ µÑ ¸â¹öµéÀº ""(ºó ¹®ÀÚ¿)ÀÇ °ªÀ» °®´Â´Ù.
char *grouping
char *mon_grouping
groupingÀº ÅëÈ·®ÀÌ ¾Æ´Ñ°Í¿¡ Àû¿ëµÇ°í mon_groupingÀº ÅëÈ·®¿¡ Àû¿ëÇØ¼ ¼Ò¼öÁ¡¿ÞÂÊ¿¡ ÀÖ´Â ¼ý ÀÚµéÀ» ¾î¶»°Ô ¹À»°ÍÀÎÁö¸¦ Á¤ÇÏ´Â ¹®ÀÚ¿ÀÌ´Ù. ½ÊÁø¼ö ±×·ìµé ºÐ¸®Çϴµ¥´Â thousnads_sep³ª mon_thousands_sepÁß¿¡ Çϳª¸¦ »ç¿ëÇ϶ó.
°¢ ¹®ÀÚ¿Àº ¼¼¹ÌÄݷп¡ ÀÇÇØ ºÐ¸®µÈ ½ÊÁø¼ö¸¦ ±¸¼ºÇÑ´Ù. ¿¬¼ÓÀûÀÎ ¼ýÀÚµé(¿ÞÂʺÎÅÍ ¿À¸¥ÂÊÀ¸·Î)Àº ¿¬¼ÓÀûÀÎ ±×·ìµé( ¼Ò¼öÁ¡¿¡¼ ½ÃÀÛÇÏ¿©, ¿À¸¥ÂÊ¿¡¼ºÎÅÍ ¿ÞÂÊÀ¸·Î)ÀÇ Å©±â¸¦ ÁØ´Ù. ¹®ÀÚ¿¿¡¼ ¸¶Áö ¸· ¼ýÀÚ´Â ¸ðµç ³²°ÜÁø ±×·ìµéÀ» À§ÇÏ¿© µÇÇ®ÀÌÇØ¼ »ç¿ëµÇ¾îÁø´Ù. ¸¸ÀÏ ¸¶Áö¸· Á¤¼ö°¡ -1À̶ó¸é, ±×°ÍÀº ´õÀÌ»ó ¹À»°ÍÀÌ ¾ø°Å³ª_¶Ç´Â ³²°ÜÁø ¼ýÀÚµéÀÌ ºÐ¸®ÀÚ°¡ ¾ø´Â ÇϳªÀÇ Å« ±×·ìÀ» ±¸¼ºÇϰí ÀÖ´Â, ´Ù¸¥ ¹æ¹ýÀ¸·Î ³õ¿©Á® ÀÖÀ½À» ÀǹÌÇÑ´Ù.
¿¹¸¦µé¾î, ¸¸ÀÏ ¹À½(grouping)ÀÌ "4;3;2"¶ó¸é, ¼ýÀÚ 123456787654321À» À§ÇÑ Á¤È®ÇÑ ±×·ìÀº `12', `34', `56', `78', `765', `4321' ÀÌ´Ù. À̰ÍÀº 2 ¼ýÀÚ±×·ì°ú 3 ¼ýÀÚ ±×·ì¿¡ ÀÇÇØ ¼±ÇàµÈ, ¸¶Áö¸·¿¡ ÀÖ ´Â 4 ¼ýÀÚ±×·ìÀ» »ç¿ëÇÑ´Ù. ±× ¼ýÀÚ´Â ºÐ¸®ÀÚ `,'¸¦ »ç¿ëÇÏ¿©, `12,34,56,78,765,4321'. ¿Í °°ÀÌ Ãâ·ÂµÇ ¾îÁø´Ù.
"3"ÀÇ °ªÀº º¸Åë ¹Ì±¹¿¡¼ »ç¿ëµÇ¾î, ¼¼ °³ ¼ýÀÚµéÀÇ ¹Ýº¹µÈ ±×·ìµéÀ» ÁöÀûÇÑ´Ù. Ç¥ÁØ `C' Áö¿ª¿¡ ¼, grouping °ú mon_groupingÀÌ ¸ðµÎ ""ÀÇ °ªÀ» °¡Áö¸é, ÀÌ °ªÀº ÀüÇô ¹À½À» ÇÏÁö ¾ÊÀ½À» ÀǹÌÇÑ ´Ù.
char int_frac_digits
char frac_digits
À̰ÍÀº ±¹Á¦¿Í Áö¿ª Çü½Ä °¢°¢¿¡¼ ÅëȰªÀ» ³ªÅ¸³»´Âµ¥ ÀÖ¾î¼ ¾ó¸¶³ª ¸¹Àº ¼Ò¼öºÎ(¼Ò¼öÁ¡ÀÇ ¿À¸¥ ÂÊ)¸¦ »ç¿ëÇÒ °ÍÀΰ¡¸¦ ³ªÅ¸³½´Ù. (¾ÆÁÖ ÀÚÁÖ, µÎ °³ÀÇ ¸â¹öµéÀº °°Àº °ªÀ» °®´Â´Ù. )
Ç¥ÁØ `C'Áö¿ª¿¡¼, ÀÌµé ¸â¹ö µÑÀº ¸ðµÎ "¹ÌÁöÁ¤"À̶ó´Â Àǹ̸¦ °¡Áø CHAR_MAX °ªÀ» °®´Â´Ù. ANSI Ç¥ÁØÀº ´ç½ÅÀÌ À̰ÍÀ» ¹ß°ßÇßÀ» ¶§ ±× °ªÀ¸·Î ¹«¾ùÀ» ÇÒ°ÍÀÎÁö ¸»ÇÏÁö ¾Ê´Â´Ù.; ¿ì¸®´Â ¾Æ¹« ·± ¼Ò¼öºÎ°¡ Ãâ·ÂµÇÁö ¾Ê´Â °ÍÀ» ÃßõÇÑ´Ù. ( ÀÌ Áö¿ªÀº ¶ÇÇÑ mon_decimal_point¸¦ À§ÇØ ºó ¹®ÀÚ¿ À» ÁöÁ¤Çϴµ¥, ±×°ÍÀº ¾î´À ¼Ò¼öºÎ ¼ýÀÚµéÀÇ Ãâ·Âµµ °ÅºÎµÊÀ» ÀǹÌÇÑ´Ù. )
19.6.2 ÅëÈ ±âÈ£(Currency Symbol) Ãâ·ÂÇϱâ.
±¸Á¶Ã¼ struct lconvÀÇ ¸â¹öµéÀº ÅëȰªÀ» È®ÀÎÇÏ´Â ½Éº¼µéÀ» ¾î¶»°Ô Ãâ·ÂÇÒ °ÍÀÎÁö¸¦ Á¤ÇÑ´Ù_¹Ì±¹ ´Þ·¯ÀÇ Ç¥½Ã´Â `$'À¸·Î ¼¼°èÀûÀ¸·Î ÀÎÁ¤ÇÑ´Ù.
°¢ ³ª¶ó´Â µÎ °³ÀÇ Ç¥ÁØ ÅëȱâÈ£µéÀ» °¡Áö°í ÀÖ´Ù. Áö¿ª ÅëȱâÈ£´Â ±× ³ª¶ó¾È¿¡¼ Åë»óÀûÀ¸·Î »ç¿ëµÇ´Â°ÍÀ̰í, ¼¼°è ÅëȱâÈ£´Â, ¸í¹éÇÏ°Ô ±× ³ª¶ó¸¦ ÁöÁ¤ÇÒ Çʿ䰡 ÀÖÀ» ¶§ ±× ³ª¶óÀÇ ÅëȱâÈ£·Î ³ªÅ¸³»±â À§Çؼ ±¹Á¦ÀûÀ¸·Î »ç¿ëµÈ´Ù.
¿¹¸¦µé¾î, ¸¹Àº ³ª¶óµéÀº ±×µéÀÇ ÅëÈ´ÜÀ§·Î ´Þ·¯¸¦ »ç¿ëÇϰí, ±¹Á¦ÀûÀ¸·Î ´Ù¸¥ ³ª¶óµé°ú °Å·¡¸¦ ÇÒ ¶§ ¹Ì±¹ ´Þ·¯´ë½Å¿¡ ij³ª´Þ ´Þ·¯·Î °Å·¡ÇÒ°ÍÀÎÁö ¶Ç´Â ¿À½ºÆ®·¹ÀÏÀ̶ó ´Þ·¯·Î °Å·¡ÇÒ °ÍÀÎÁö¸¦ Á¤ ÇÏ´Â °ÍÀº Áß¿äÇÏ´Ù. ±×·¯³ª ±× ±¸¹®ÀÌ Ä³³ª´Ù°¡ µÇµµ·Ï Á¤ÇØÁ®ÀÖÀ» ¶§, ´Þ·¯ÀÇ ¾çµéÀº ij³ª´Ù ´Þ·¯ ·Î µÈ´Ù°í °¡Á¤µÇ¹Ç·Î À̰ÍÀ» ¸í¹éÇÏ°Ô ¸¸µé Çʿ䰡 ¾ø´Ù.
char *currency_symbol
¼±ÅÃµÈ Áö¿ªÀ» À§ÇÑ ÅëȱâÈ£. Ç¥ÁØ `C' Áö¿ª¿¡¼, ÀÌ ¸â¹ö´Â "¹ÌÁöÁ¤"À» ÀǹÌÇÏ´Â, ""(ºó ¹®ÀÚ¿)ÀÇ °ªÀ» °®´Â´Ù. ANSI Ç¥ÁØÀº ´ç½ÅÀÌ À̰ÍÀ» ¹ß°ßÇßÀ» ¶§, ±× °ªÀ¸·Î ¹«¾ùÀ» ÇÏ´ÂÁö¸¦ ¸»ÇÏÁö ¾Ê´Â´Ù. ¿ì¸®´Â ´ç½ÅÀÌ Àû´çÇÑ ¸â¹ö¿¡¼ ¹ß°ßÇÑ ¾î´À ¹®ÀÚ¿À» Ãâ·ÂÇÏ´Â °Í ó·³, ºó ¹®ÀÚ¿À» °£´ÜÈ÷ Ãâ·Â Çϵµ·Ï ±ÇÀåÇÑ´Ù.
char *int_curr_symbol
¼±ÅÃµÈ Áö¿ªÀ» À§ÇÑ ±¹Á¦ ÅëȱâÈ£. int_curr_symbolÀÇ °ªÀº ±¹Á¦ Ç¥ÁØ ISO 4217 ÄÚµåµé¿¡ ÀÇÇØ °á Á¤µÈ ¼¼ °³-¹®ÀÚÀÇ ¾à¾î·Î ±¸¼ºµÈ´Ù. ±¹Á¦Ç¥ÁØ ISO 4217ÄÚµå´Â ÇÑ-¹®ÀÚ ºÐ¸®ÀÚÀÇ ´ÙÀ½¿¡ ³ªÅ¸³ª´Â (°ÅÀÇ °ø¹éÀ» »ç¿ë.), ÅëÈ¿Í ÀÚ±ÝÀÇ Ç¥ÇöÀ» À§ÇÑ °ÍÀÌ´Ù. Ç¥ÁØ `C'Áö¿ª¿¡¼, ÀÌ ¸â¹ö´Â "¹ÌÁöÁ¤"À» ÀǹÌÇÏ´Â ""(ºó ¹®ÀÚ¿)ÀÇ °ªÀ» °®´Â´Ù. ¿ì¸®´Â Àû´çÇÑ ¸â¹ö¿¡¼ ¹ß°ßµÈ ¾î´À ´Ù¸¥ ¹®ÀÚ¿À» Ãâ·ÂÇÏ ´Â°Íó·³ ºó ¹®ÀÚ¿À» °£´ÜÈ÷ Ãâ·ÂÇϱ⸦ ±ÇÀåÇÑ´Ù.
char p_cs_precedes
char n_cs_precedes
ÀÌµé ¸â¹öµéÀº ¸¸ÀÏ currency_symbol ¹®ÀÚ¿ÀÌ ÅëÈ·®ÀÇ °ªº¸´Ù ¼±ÇàÇϸé 1À̰í, ±× ¹®ÀÚ¿ÀÌ °ªº¸ ´Ù µÚ¿¡ ³ªÅ¸³ª¸é 0ÀÌ´Ù. p_cs_precedes ¸â¹ö´Â ¾çÀÇ °ª(¶Ç´Â 0)¿¡ Àû¿ëÇϰí, n_cs_precedes ¸â¹ö´Â À½ÀÇ °ª¿¡ Àû¿ëÇÑ´Ù. Ç¥ÁØ `C' Áö¿ª¿¡¼, ÀÌ ¸â¹ö µÑ ¸ðµÎ´Â "¹ÌÁöÁ¤"À» ÀÇ¹Ì ÇÏ´Â CHAR_MAXÀÇ °ªÀ» °®´Â´Ù. ANSI Ç¥ÁØÀº ´ç½ÅÀÌ ÀÌ °ªÀ» ¹ß°ßÇÒ ¶§ ¹«¾ùÀ» ÇÏ´ÂÁö¸¦ ¸»ÇÑÁö ¾ÊÁö¸¸, ¿ì¸®´Â ±× °ª ¾Õ¿¡ ÅëȱâÈ£¸¦ Ãâ·ÂÇϱ⸦ ±ÇÀåÇÑ´Ù. ´ëºÎºÐÀÇ ³ª¶ó¿¡¼ ±×·¸°Ô »ç¿ëÇÑ´Ù. Áï ±×µé ¸â¹ö¾È¿¡ ÀÖ´Â ¸ðµç 0ÀÌ ¾Æ´Ñ°ªµéÀ» À¯»çÇÏ°Ô Ãë±ÞÇ϶ó.
POSIX Ç¥ÁØÀº ±×µé µÎ °³ÀÇ ¸â¹öµéÀ» currency_symbolÀº ¹°·Ð int_curr_symbol¿¡µµ Àû¿ëÇÑ´Ù. ANSI C Ç¥ÁØÀº ±×µéÀº ¿ÀÁ÷ currency_symbol¿¡ Àû¿ëµÊÀ» ³»Æ÷Çϰí ÀÖ´Â °Íó·³ º¸¿©¼ _int_curr_symbolÀº Ç×»ó ³ªÅ¸³»·Á´Â ¾ç(amount)¿¡ ¼±ÇàÇÒ °ÍÀÌ´Ù. ¿ì¸®´Â ±×µéÀÌ ±¹Á¦ÅëȱâÈ£
¸¦ Ãâ·ÂÇϱâ À§Çؼ º¸ÅëÀÇ °ü½Àµé°ú ¸ÅÄ¡µÉ°ÍÀ̶ó°í ÁüÀÛÇÒ ¼ö ÀÖ´Ù. ¿ì¸®ÀÇ ³ªÅ¸³»·Á´Â ¾ç (amount)¿¡ Ç×»ó ¼±ÇàÇÒ°ÍÀ̶ó°í ÃßÃøÇÑ´Ù. ¸¸ÀÏ ¿ì¸®°¡ ÀÌÇØ°¡´ÉÇÑ ´äÀ» ¹ß°ßÇÑ´Ù¸é, ¿ì¸®´Â ±×°Í À» ±×·¸°Ô ÇÒ °ÍÀÌ´Ù.
char p_sep_by_space
char n_sep_by_space
±×µé ¸â¹öµéÀº currency_symbol ¹®ÀÚ¿°ú ¾ç(amount) »çÀÌ¿¡ °ø¹éÀÌ ÀÖÀ¸¸é 1ÀÌ°í ¾øÀ¸¸é 0ÀÌ´Ù. p_sep_by_space ¸â¹ö´Â ¾çÀǰª(¶Ç´Â 0)¿¡ Àû¿ëµÇ°í, n_sep_by_space ¸â¹ö´Â À½ÀÇ °ª¿¡ Àû¿ëµÈ´Ù.Ç¥ ÁØ `C' Áö¿ª¿¡¼, ÀÌµé ¸â¹ö µÑ ¸ðµÎ´Â "¹ÌÁöÁ¤"À» ÀǹÌÇÏ´Â CHAR_MAXÀÇ °ªÀ» °®´Â´Ù. ANSI Ç¥ ÁØÀº ´ç½ÅÀÌ ÀÌ °ªµéÀ» ¹ß°ßÇÒ ¶§ ´ç½ÅÀÌ ¹«¾ùÀ» ÇÒ°ÍÀÎÁö¸¦ ¾Ë¸®Áö ¸øÇÑ´Ù; ¿ì¸®´Â °ø¹éÀ» Ãâ·ÂÇÏ ´Â °Í ó·³ ±×°ÍÀ» Ãë±ÞÇϱ⸦ Á¦¾ÈÇÑ´Ù. Áï, ±×µé ¸â¹ö¾È¿¡ ÀÖ´Â ¸ðµç 0ÀÌ ¾Æ´Ñ°ªµéÀº À¯»çÇÏ°Ô ÃÖ ±ÞÇ϶ó. ±×µé ¸â¹öµéÀº ¿ÀÁ÷ currency_symbol¿¡ Àû¿ëµÈ´Ù. ´ç½ÅÀÌ int_curr_symbolÀ» »ç¿ëÇÒ¶§, ´ç ½ÅÀº °áÄÚ ºÎ°¡ÀûÀÎ °ø¹éÀ» ÇÁ¸°Æ®ÇÏÁö ¾Ê´Â´Ù, ¿Ö³ÄÇϸé, int_curr_symbol ±×ÀÚü´Â Àû´çÇÑ ºÐ¸®ÀÚ ¸¦ Æ÷ÇÔÇϰí Àֱ⠶§¹®ÀÌ´Ù.
POSIX Ç¥ÁØÀº ±×µé µÎ °³ÀÇ ¸â¹öµéÀ» currency_symbol ó·³ int_curr_symbol¿¡µµ Àû¿ëÇÑ´Ù. ±×·¯³ª ANSI C Ç¥ÁØ¿¡ ÀÖ´Â ¿¹Á¦µéÀº Àû´çÇÑ ºÐ¸®ÀÚ¸¦ Ç¥ÇÔÇÑ int_curr_symbol·Î currency_sumbol¸¸ÀÌ ¿À Á÷ Àû¿ëµÊÀ» º¸¿©ÁÖ°í ÀÖ´Ù_±×·¡¼ ´ç½ÅÀº °áÄÚ ºÎ°¡ÀûÀÎ °ø¹éÀ» ÇÁ¸°Æ®ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ¿ì¸®°¡ ÇöÀç ¾Ë°íÀִ°Ϳ¡ ±âÃÊÇÏ¿©, ¿ì¸®´Â ´ç½ÅÀÌ ±¹Á¦ ÅëȱâÈ£¸¦ ÇÁ¸°Æ®ÇÏ°í ¾Æ¹«·± °ø¹éÀ» ÇÁ¸°Æ® ÇÏ Áö¾ÊÀ» ¶§, ±×µé ¸â¹öµéÀ» ¹«½ÃÇϱ⸦ ±ÇÀåÇÑ´Ù.
19.6.3 ±ÝÀü(Money)ÀÇ ºÎÈ£¸¦ ÇÁ¸°Æ®Çϱâ.
±¸Á¶Ã¼ struct lconvÀÇ ¸â¹öµéÀº ÅëȰªÀÇ ºÎÈ£¸¦ ¾î¶»°Ô ÇÁ¸°Æ®ÇÒ °ÍÀÎÁö¸¦ ÁöÁ¤ÇÑ´Ù.
char *positive_sign
char *negative_sign
±×µéÀº ¾çÀǰª(¶Ç´Â 0) °ú À½ÀÇ ÅëÈ·®À» ¾Ë¸®±âÀ§ÇØ »ç¿ëµÇ´Â ¹®ÀÚ¿ÀÌ´Ù. Ç¥ÁØ `C' Áö¿ª¿¡¼, ±× µé ¸â¹ö µÑ ¸ðµÎ´Â "¹ÌÁöÁ¤"À» ÀǹÌÇÏ´Â ""(ºó ¹®ÀÚ¿®)ÀÇ °ªÀ» °®´Â´Ù.
ANSI Ç¥ÁØÀº ´ç½ÅÀÌ ÀÌ °ªÀ» ¹ß°ßÇÒ ¶§ ¹«¾ùÀ» Çϵµ·Ï ¸»ÇÏÁö ¾Ê´Â´Ù; ¿ì¸®´Â ´ç½ÅÀÌ ±×°ÍÀ» ¹ß°ß ÇßÀ» ¶§, ½ÉÁö¾î ¸¸ÀÏ ±×°ÍÀÌ ºñ¾îÀÖÀ»¶§¶ó°í, positive_signÀ» ÇÁ¸°Æ® Çϱ⸦ ±ÇÀåÇÑ´Ù. À½ÀÇ °ªÀ» À§Çؼ´Â, nugative_sign°ú positive_signÀÌ ¸ðµÎ ºñ¾îÀÖÁö ¾Ê´Ù¸é ´ç½ÅÀÌ ¹ß°ßÇÒ °ÍÀ¸·Î negative_signÀ» ÇÁ¸°Æ®Ç϶ó, ÀÌ °æ¿ì¿¡´Â `-'ÀÌ´Ù. ( ÀüÇô ¾î¶² ºÎÈ£¶óµµ Áö½ÃÇÏ´Â °ÍÀ» ½ÇÆÐÇÏ¸é ³ª Áß¿¡ ÀÌÇØÇÒ ¼ö ¾ø´Â °ªÀÌ µÇ°í¸¸´Ù.)
char p_sign_posn
char n_sign_posn
0 ÅëȱâÈ£¿Í ÅëÈ·®ÀÌ °ýÈ£°¡ ÃÄÁ®ÀÖ´Ù.
1 ÅëȱâÈ£¿Í ÅëÈ·® ¾Õ¿¡ ºÎÈ£ ¹®ÀÚ¿À» Ãâ·ÂÇ϶ó.
2 ÅëȱâÈ£¿Í ÅëÈ·® µÚ¿¡ ºÎÈ£¹®ÀÚ¿À» Ãâ·ÂÇ϶ó.
3 ÅëȱâÈ£ ¾Õ¿¡ Àû´çÇÑ ºÎÈ£ ¹®ÀÚ¿À» Ãâ·ÂÇ϶ó.
4 ÅëȱâÈ£ ÈÄ¿¡ Àû´çÇÑ ºÎÈ£ ¹®ÀÚ¿À» Ãâ·ÂÇ϶ó.
CHAR_MAX
"¹ÌÁöÁ¤" µÎ °³ ¸â¹ö ¸ðµÎ´Â Ç¥ÁØ `C' Áö¿ª¿¡¼ ÀÌ °ªÀ» °®´Â´Ù.
ANSI Ç¥ÁØÀº CHAR_MAX °ªÀÌ ÀÖÀ» ¶§ ´ç½ÅÀÌ ¹«¾ùÀ» ÇØ¾ßÇÏ´ÂÁö ¸»ÇØÁÖÁö ¾Ê´Â´Ù. ¿ì¸®´Â ÅëÈ ±âÈ£ µÚ¿¡ ºÎÈ£¸¦ Ãâ·ÂÇϵµ·Ï ±ÇÀåÇÑ´Ù.
±¹Á¦Àû ÅëÈ Çü½ÄÀ̰ųª ¾Æ´Ñ°Í¿¡ ÀÌµé ¸â¹öµéÀÇ Àû¿ëÀÌ ´ç½Å¿¡°Ô Çã¿ë µÉ°ÍÀÎÁö°¡ ¸í¹éÇÏÁö ¾Ê´Ù. POSIX´Â ´ç½ÅÀÌ ±×·¸°Ô Çϵµ·Ï ÇÏÁö¸¸, ANSI C Ç¥ÁØ¿¡ ÀÖ´Â ¿¹Á¦µéÀº ´ç½ÅÀÌ ±×·¸Á¦ ÇÏÁö¾Ê±â¸¦ Á¦¾ÈÇÑ´Ù. ¿ì¸®´Â ÅëÈ·®ÀÇ Çü½Äȸ¦ À§ÇÑ °ü½ÀÀ» Àß ¾Ë°í ÀÖ´Â ´©±º°¡°¡ ¿ì¸®°¡ ¹«¾ùÀ» ±ÇÀåÇÒÁö¸¦ ¿ì¸®¿¡°Ô ¸»ÇØÁֱ⸦ Èñ¸ÁÇÑ´Ù.