Á¦ 4Àå ¹®ÀÚ ´Ù·ç±â
¹®ÀÚ¿Í ¹®ÀÚ¿µéÀ» °¡Áö°í ÀÏÀ»ÇÏ´Â ÇÁ·Î±×·¥µéÀº Á¾Á¾ ÇÑ ¹®ÀÚ°¡ ¾ËÆÄºªÀÎÁö ¼ýÀÚÀÎÁö ¶Ç´Â °ø¹é ÀÎÁö, µî µîÀ» ºÐ·ùÇÒ ÇÊ¿ä¿Í °¢ ¹®ÀÚ¿¿¡ ¿øÇÏ´Â º¯È¯À» ½ÃųÇʿ䰡 ÀÖ´Ù. 'ctype.h'¾È¿¡ ÀÖ´Â ÇÔ ¼öµéÀÌ ÀÌ¿Í °°Àº ¸ñÀûÀ» À§ÇÑ ÇÔ¼öµéÀ» Á¦°øÇÑ´Ù. ¹®ÀÚÁ¶ÇÕ°ú Áö¿ªÀ» ¼±ÅÃÇÑ ÈÄ¿¡ Ưº°ÇÑ ¹®ÀÚ ÄÚ µåµéÀÇ ºÎ·ù·Î º¯È ½Ãų¼ö Àִµ¥, ÀÌ ¸ðµç ÇÔ¼öµéÀº ÇöÀçÀÇ Áö¿ª¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â´Ù.( ´õ Á¤¹Ð È÷ ¸»Çϸé LC_CTYPE ºÐ·ùÀÇ ¹®Àںзù¸¦ À§ÇØ ¼±ÅõǾîÁø ÇöÀçÀÇ À§Ä¡¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â´Ù.; 19.3Àý[Locale Categories] 260ÆäÀÌÁö¸¦ ÂüÁ¶Ç϶ó.)
4.1 ¹®ÀÚµéÀÇ ºÐ·ù
ÀÌ ÀýÀº ¹®ÀÚµé ºÐ·ù¸¦ À§ÇÑ ¶óÀ̺귯¸® ÇÔ¼öµéÀ» ¼³¸íÇÑ´Ù. ¿¹¸¦ µé¸é isalpha´Â ÇÑ ¹®ÀÚ°¡ ¾ËÆÄ ºª ¹®ÀÚµéÀÎÁö Å×½ºÆ® ÇϱâÀ§ÇÑ ÇÔ¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â Å×½ºÆ® ÇϱâÀ§ÇÑ ¹®ÀÚ¸¦ ÇϳªÀÇ Àμö·Î ÃëÇÏ¿©
¸¸¾à ±×°ÍÀÌ ¾ËÆÄºªÀÌ¸é ¿µÀÌ ¾Æ´Ñ Á¤¼ö¸¦ ¸®ÅÏÇÏ°í ´Ù¸¥ °æ¿ì´Â ¿µÀ» ¸®ÅÏÇÑ´Ù. ´ç½ÅÀ» À̰ÍÀ» ´Ù À½°ú °°ÀÌ »ç¿ëÇÒ¼ö ÀÖ´Ù.
if (isalpha (c))
printf ("The character `%c' is alphabetic.\n", c);
/* ¸¸¾à c°¡ ¾ËÆÄºªÀ̸é "À̹®ÀÚ´Â ¾ËÆÄºªÀÌ´Ù" ´Â°É ÇÁ¸°Æ® ÇϰÚÁÒ...? */
ÀÌ Àý¾ÈÀÇ °¢°¢ÀÇ ÇÔ¼öµéÀ» ¹®ÀÚµéÀÌ Æ¯º°ÇÑ ºÎ·ù¾È¿¡ ¼ÓÇÏ´ÂÁö¸¦ Å×½ºÆ® ÇϱâÀ§ÇÑ ÇÔ¼öµéÀÌ´Ù.; °¢°¢Àº 'is'·Î ÇÔ¼öÀ̸§ÀÌ ½ÃÀ۵ȴÙ. ±×µé ÇÔ¼ö´Â Å×½ºÆ® ÇϱâÀ§ÇÑ ¹®ÀÚ¸¦ ÇϳªÀÇ Àμö·Î ÃëÇϰí boolean°ªÀ¸·Î Ãë±ÞµÇ´Â Á¤¼ö¸¦ ¸®ÅÏÇÑ´Ù. ±× ¹®ÀÚÀμö´Â intÇüÀ¸·Î °£ÁÖµÇ°í ½ÇÁ¦ ¹®ÀÚ ´ë½Å¿¡ »ó ¼ö°ª EOF·Î µÇ¾îÁú °ÍÀÌ´Ù. ¾î´À ÁÖ¾îÁø ¹®ÀÚÀÇ ¼Ó¼ºÀº Áö¿ªµé¿¡ µû¶ó¼ º¯ÈÇÒ¼ö ÀÖ´Ù. Áö¿ªµé¿¡ ´ëÇÑ ´õ ´Ù¾çÇÑ Á¤º¸´Â 19Àå[Locales] 259ÆäÀÌÁö¸¦ ÂüÁ¶Ç϶ó.
´ÙÀ½Àº 'ctype.h'ÀÇ Çì´õÆÄÀÏ¿¡ Á¤ÀÇµÈ ÇÔ¼öµéÀÌ´Ù.
ÇÔ¼ö int islower (int c)
¸¸¾à c°¡ ¼Ò¹®ÀÚÀ̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù.
ÇÔ¼ö int isupper (int c)
¸¸¾à c °¡ ´ë¹®ÀÚÀ̸é Âü °ªÀ» ¸®ÅÏÇÑ´Ù.
ÇÔ¼ö int isalpha (int c)
¸¸¾à c °¡ ¿µ¹®ÀÚÀ̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù. ¹®ÀÚ°¡ ´ë¹®ÀÚÀÌ°Ç ¼Ò¹®ÀÚÀÌ°Ç isalpha´Â ¸ðµÎ Âü°ªÀ» ¸®ÅÏ ÇÑ´Ù. ¾î¶² Áö¿ªµé¿¡¼ isalpha¿¡ ÀÇÇØ ±×°ÍÀÌ ¼Ò¹®ÀÚÀÇ °æ¿ìµç ´ë¹®ÀÚÀÇ °æ¿ìµçÁö Âü°ªÀÌ ¸®Åϵǵµ ·Ï ´õÇØÁø ¹®ÀÚµéÀÌ ÀÖÀ»¼ö ÀÖ´Ù. ÇÏÁö¸¸ Ç¥ÁØC¾ð¾î¿¡¼´Â ±×·¸°Ô ´õÇØÁø ¹®ÀÚµéÀÌ ¾ø´Ù.
ÇÔ¼ö int isdigit (int c)
¸¸¾à c °¡ ½ÊÁø¼ö('0'¿¡¼ '9')À̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù.
ÇÔ¼ö int isalnum (int c)
¸¸¾à c °¡ ¿µ¼ýÀÚÀ̸é ( ¹®ÀÚÀ̰ųª ¼ýÀÚ ) Âü°ªÀ» ¸®ÅÏÇÑ´Ù.; isalpha³ª isdigit ¿¡ ÀÇÇØ Âü°ªÀÌ ¸® ÅϵǴ ¹®ÀÚ´Â isalnum¿¡¼µµ Âü°ªÀ» ¸®ÅÏÇÑ´Ù.
ÇÔ¼ö int isxdigit (int c)
¸¸¾à c °¡ 16Áø¹ýÀÇ·Î »ç¿ëµÈ ¹®ÀÚ À̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù. 16Áø¼ö´Â ÀϹÝÀû 10Áø¼öÀÎ '0'¿¡¼ '9'¿Í 'A'¿¡¼ 'F" ±îÁö¿Í 'a'¿¡¼ 'f'±îÁöÀÇ ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ´Ù.
ÇÔ¼ö int ispunct (int c)
¸¸¾à c °¡ ±¸µÎ¹®ÀÚÀÎ °æ¿ì Âü°ªÀ» ¸®ÅÏÇÑ´Ù. À̰ÍÀº ¾ËÆÄºªÀ̳ª °ø¹é¹®ÀÚ´Â ¾Æ´ÏÁö¸¸ ÀμâÇÒ¼ö ÀÖ ´Â ¾î´À ¹®ÀÚ¸¦ ÀǹÌÇÑ´Ù.
ÇÔ¼ö int isspace (int c)
¸¸¾à c °¡ °ø¹é¹®ÀÚ(white space)À̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù. Ç¥ÁØ"C"¿¡¼´Â ¿ÀÁ÷ °ø¹é¹®ÀÚ(white space) ¿¡ Âü°ªÀ» ¸®ÅÏÇÑ´Ù.
' ' space : °ø¹é
'\f' formfeed : Á¾À̳ѱè
'\n' newline : °³Çà
'\r' carriage return : º¹±Í¹®ÀÚ
'\t' horizontal tab : ¼öÆòÅÇ
'\v' vertical tab : ¼öÁ÷ÅÇ
ÇÔ¼ö int isbalnk (int c)
¸¸¾à c °¡ blank ¹®ÀÚÀ̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù.; À̰ÍÀº space³ª tabÀ» ¸»ÇÑ´Ù. ÀÌ ÇÔ¼ö´Â GNU È®ÀåÀÌ ´Ù.
ÇÔ¼ö int isgraph (int c)
¸¸¾à c °¡ ±×·¡ÇÈ ¹®ÀÚÀ̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù.; À̰ÍÀº »óÇü¹®ÀÚ¿Í ¿¬°üµÈ ¹®ÀÚ·Î °ø¹é¹®ÀÚ(white space)´Â ±×·¡ÇÈÀ¸·Î °£ÁÖµÇÁö ¾Ê´Â´Ù.
ÇÔ¼ö int isprint (int c)
¸¸¾à c °¡ ÇÁ¸°Æ®µÇ´Â ¹®ÀÚ¸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù. ÇÁ¸°Æ®µÇ´Â ¹®ÀÚ¶õ ¸ðµç ±×·¡Çȹ®ÀÚ¿¡ ´õÇÏ¿© space (' ') ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ´Ù.
ÇÔ¼ö int iscntrl (int c)
¸¸ÀÏ c °¡ Á¦¾î¹®ÀÚÀ̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù. ( ±×°ÍÀº ÇÁ¸°Æ®°¡ °¡´ÉÇÏÁö ¾ÊÀº ¹®ÀÚÀÌ´Ù. )
ÇÔ¼ö int isascii (int c)
¸¸ÀÏ c °¡ US/UK ¹®Àڼ ¾È¿¡ Á¤ÀÇµÈ 7ºñÆ® ºÎȣȵÇÁö ¾ÊÀº ¹®ÀÚÀ̸é Âü°ªÀ» ¸®ÅÏÇÑ´Ù. ÀÌ ÇÔ¼ö ´Â BSD¿Í SVIDÈ®ÀåÀÌ´Ù.
4.2 º¯È¯
ÀÌÀýÀº ¹®ÀÚµéÀ» ¿øÇÏ´Â ¸ñÀû¿¡ ¸Âµµ·Ï º¯È¯À» ¼öÇàÇÏ´Â ¶óÀ̺귯¸® ÇÔ¼öµé¿¡ ´ëÇØ ¼³¸íÇϰí ÀÖ´Ù. ¿¹¸¦ µé¾î toupper º¯È¯Àº ±×°ÍÀÌ °¡´ÉÇÏ´Ù¸é ´ë¹®ÀÚ·Î ¾î´À ÇÑ ¹®ÀÚ¸¦ º¯È¯ÇÑ´Ù. ¸¸¾à ±× ¹®ÀÚ°¡ º¯È¯ÇÒ¼ö ¾ø´Â °ÍÀ̶ó¸é º¯È¯µÇÁö¾ÊÀº ¹®ÀÚ¸¦ ¸®ÅÏÇÑ´Ù.
ÀÌ ÇÔ¼öµéÀ» º¯È¯½ÃŰ±â ¿øÇÏ´Â ¹®ÀÚ¸¦ int ÇüÀ¸·Î ÀÎÀÚ¸¦ ¹Þ¾Æ¼ ¹®ÀÚ¸¦ º¯È¯½ÃÄÑ ¸®ÅÏÇÑ´Ù. ¸¸¾à ÁÖ¾îÁø Àμö¿¡ Àû¿ëºÒ°¡´ÉÇÏ´Ù¸é ±× Àμö´Â º¯È¯µÇÁö¾Ê°í ¸®ÅϵȴÙ.
ȣȯ¼º¿¡ ´ëÇÑ ÂüÁ¶ : ANSI-C ÀÌÀü¿¡´Â º¯È¯µÇÁö ¾ÊÀº ¹®ÀÚ¸¦ ¸®ÅÏÇÏ´Â ´ë½Å¿¡ Àμö°¡ º¯È¯¿¡ Àû¿ëºÒ°¡´É ÇÏ´Ù¸é ÀÌ ÇÔ¼öµéÀº ±×³É ½ÇÆÐ¸¸ ÇÏ°í ¸¸´Ù. ±×·¡¼ Àû¿ë¼ºÀ» À§Çؼ ´ÜÁö toupper(c) ¶ó°í¸¸ Çϴ°ͺ¸´Ü islower(c) ? toupper(c) : c ¶ó°í ¾²´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù.
ÀÌ ÇÔ¼öµéÀ» Çì´õÆÄÀÏ 'ctype.h'¿¡ Á¤ÀǵǾî ÀÖ´Ù.
ÇÔ¼ö int tolower (int c)
¸¸¾à c °¡ ´ë¹®ÀÚ¶ó¸é ±×¿Í ´ëÀÀÇÏ´Â ¼Ò¹®ÀÚ¸¦ ¸®ÅÏÇÑ´Ù. ¸¸¾à c °¡ ´ë¹®ÀÚ°¡ ¾Æ´Ï¶ó¸é c´Â º¯ÈµÇ Áö ¾Ê°í ¸®ÅϵȴÙ.
ÇÔ¼ö int toupper (int c)
¸¸¾à c °¡ ¼Ò¹®ÀÚ¶ó¸é ±×°Í¿¡ ´ëÀÀÇÏ´Â ´ë¹®ÀÚ¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é º¯ÈµÇÁö ¾ÊÀº c¸¦ ¸®ÅÏ ÇÑ´Ù.
ÇÔ¼ö int toascii (int c)
ÀÌ ÇÔ¼ö´Â c¸¦, cÀÇ °¡Àå »óÀ§ ºñÆ®¸¦ Ŭ¸®¾î ÇÔÀ¸·Î½á US/UK ASCII ¹®Àڼ ¾È¿¡ Á¸ÀçÇÏ´Â 7ºñÆ® ºñºÎÈ£È ¹®ÀÚ°ªÀ¸·Î º¯È¯½ÃŲ´Ù. ÀÌ ÇÔ¼ö´Â BSD¿Í SVIDÈ®ÀåÀÌ´Ù.
ÇÔ¼ö int __tolower (int c)
ÀÌ ÇÔ¼ö´Â ¼Ò¹®ÀÚ·Î º¯È¯½ÃŰ´Â ÇÔ¼ö·Î SVID¿¡ ȣȯ¼ºÀ» À§ÇØ Á¦°øµÇ°í ÀÖ´Ù. 1.2.4Àý [SVID] 2ÆäÀÌ Áö¸¦ º¸¶ó.
ÇÔ¼ö int __toupper (int c)
ÀÌ ÇÔ¼öµµ À§ÀÇ __tolower(int c)ó·³ SVIDÀÇ È£È¯¼ºÀ» À§ÇØ Á¦°øµÇ´Â ÇÔ¼ö·Î ¹®ÀÚ¸¦ ´ë¹®ÀÚ·Î º¯È¯ ½ÃŰ´Â ±â´ÉÀ» ÇÑ´Ù.