¼öÄ¡¿Í ¹®ÀÚ¿Àº µ¥ÀÌÅÍ Å¸ÀÔÀÌ ´Ù¸£¸ç µû¶ó¼ ¸Þ¸ð¸®¿¡ ±â¾ïµÇ´Â ¸ð¾çµµ »ó´çÈ÷ ´Ù¸£´Ù. ´ÙÀ½ µÎ º¯¼ö¸¦ º¸ÀÚ.
int num=123;
char str[]="123";
µÎ º¯¼ö ¸ðµÎ 123À¸·Î ÃʱâȵǾú´Âµ¥ Á¤¼öÇü º¯¼ö numÀº ¼öÄ¡°ª 123À» °¡Áö°í ÀÖ°í ¹®ÀÚ ¹è¿ strÀº ¹®ÀÚ¿ "123"À» °¡Áö°í ÀÖ´Ù. ÀÌ µÎ °ªÀº ¿ÜÇüÀûÀÎ ¸ð¾çÀÌ ºñ½ÁÇØ º¸ÀÌÁö¸¸ ³»ºÎÀûÀ¸·Î´Â ¿ÏÀüÈ÷ ´Ù¸¥ °ªÀÌ´Ù. numÀÇ °ª 123Àº ¹éÀ̽ʻïÀ̶ó´Â ¼öÄ¡À̸ç ÀÌ °ªÀº 122º¸´Ù Çϳª ´õ ¸¹°í 124º¸´Ù´Â Çϳª ´õ ÀÛ´Ù´Â ¼ºÁúÀ» °¡Áö°í ÀÖ´Ù. ¹Ý¸é ¹®ÀÚ¿ strÀÇ °ª "123"Àº ¹®ÀÚ '1'°ú ¹®ÀÚ '2'¿Í ¹®ÀÚ '3'ÀÌ ¿¬¼ÓÀûÀ¸·Î ¹èÄ¡µÇ¾î ÀÖ´Ù »ÓÀÌÁö »ê¼úÀûÀÎ Àǹ̸¦ °¡ÁöÁö ¾Ê´Â´Ù.
¹®ÀÚ¿°ú ¼öÄ¡´Â ³»ºÎÀûÀÎ ¸ð¾çÀÌ ¿ÏÀüÈ÷ ´Ù¸£±â ¶§¹®¿¡ »óÈ£ ´ëÀÔÇϰųª ¿¬»êÇÒ ¼ö ¾ø´Ù. ¿¹¸¦ µé¾î str=123À̶ó°í ´ëÀÔÇѴٰųª a=num+str°ú °°ÀÌ µ¡¼ÀÀ» ÇÒ ¼ö ¾ø´Â °ÍÀÌ´Ù. ¶ÇÇÑ °¢°¢Àº ŸÀÔÀÌ ¸Â´Â À§Ä¡¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. numÀÌ 123ÀÇ °ªÀ» °¡Áø´Ù°í Çؼ puts(num)À» È£ÃâÇϸé 123ÀÌ Ãâ·ÂµÇ´Â °ÍÀÌ ¾Æ´Ï¸ç strÀÌ "123"ÀÏ ¶§ delay(str)À̶ó°í È£ÃâÇÑ´Ù°í Çؼ 0.123ÃÊ µ¿¾È ½ÇÇàÀÌ ÁßÁöµÇ´Â °Íµµ ¾Æ´Ï´Ù.
ÄÜ¼Ö È¯°æ¿¡¼´Â ÀÌ·± µÎ Çü½ÄÀÇ Â÷ÀÌÁ¡À» ¾î´À Á¤µµ ¿ÏÃæÇØÁÖ´Â ÀåÄ¡°¡ ÀÖ´Ù. ȸéÀ¸·Î Á÷Á¢ Ãâ·Â °¡´ÉÇÑ Çü½ÄÀº ¹®ÀÚ¿»ÓÀε¥ printf ÇÔ¼ö´Â %d, %f ¼½Ä¿¡ ÀÇÇØ Á¤¼ö³ª ½Ç¼ö¸¦ ¹®ÀÚ¿·Î ¹Ù²Ù¾î Ãâ·ÂÇÑ´Ù. Å°º¸µå´Â ¿øÄ¢ÀûÀ¸·Î ¹®ÀÚ¿À» ÀÔ·ÂÇÏ´Â ÀåºñÀÌÁö¸¸ ÀÔ·ÂµÈ ¹®ÀÚ¿ÀÌ scanf ÇÔ¼ö¿¡ ÀÇÇØ ¼öÄ¡°ªÀ¸·Î ¹Ù²î¾î º¯¼ö¿¡ ´ëÀԵȴÙ.
±×·¯³ª ±×·¡ÇÈ È¯°æ(GUI)¿¡¼´Â ÀÌ·± ÀåÄ¡°¡ Á¦°øµÇÁö ¾Ê´Â´Ù. À©µµ¿ìÁîÀÇ Ç¥ÁØ Ãâ·Â ÇÔ¼öÀÎ TextOutÀº ¿À·ÎÁö ¹®ÀÚ¿¸¸ Ãâ·ÂÇÒ ¼ö ÀÖ°í ¿¡µðÆ® ÄÁÆ®·ÑÀÌ ÀԷ¹޴ °ªµµ ¿øÄ¢ÀûÀ¸·Î ¹®ÀÚ¿»ÓÀÌ´Ù. ÀÌ·± °æ¿ì¿¡´Â ¼öÄ¡¿Í ¹®ÀÚ¿À» ¿øÇÏ´Â ÇüÅ·ΠÁ÷Á¢ ¹Ù²Û ÈÄ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ Àý¿¡¼´Â ¼öÄ¡, ±×·¯´Ï±î Á¤¼ö¿Í ½Ç¼ö¸¦ ¹®ÀÚ¿·Î »óÈ£ º¯È¯ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¼ °ÍÀÌ´Ù.
´ÙÀ½ ÇÔ¼öµéÀº Á¤¼ö¸¦ ¹®ÀÚ¿·Î º¯È¯ÇÑ´Ù. Á¤¼öÀÇ Å¸ÀÔ¿¡ µû¶ó ¼¼ °³ÀÇ ÇÔ¼ö°¡ ÁغñµÇ¾î Àִµ¥ 32ºñÆ® ȯ°æ¿¡¼´Â longÇüÀÌ int¿Í °°±â ¶§¹®¿¡ ltoa ÇÔ¼ö´Â itoa ÇÔ¼ö¿Í µ¿ÀÏÇÏ´Ù. ÁÖ·Î itoa ÇÔ¼ö¸¦ ¸¹ÀÌ »ç¿ëÇÏ¸ç ºÎÈ£¾ø´Â Á¤¼öÀÏ °æ¿ì¿¡¸¸ ultoa ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù.
char *itoa(int value, char *string, int radix);
char *ltoa(long value, char *string, int radix);
char *ultoa(unsigned long value, char *string, int radix);
itoa ÇÔ¼ö´Â Integer to AsciiÀÇ Áظ»ÀÌ¸ç ¸» ¶æ ±×´ë·Î Á¤¼ö¸¦ ¹®ÀÚ¿·Î º¯È¯ÇÑ´Ù. ù ¹ø° Àμö¿¡ ¹Ù²Ù°íÀÚ ÇÏ´Â Á¤¼ö°ªÀ» ÁÖ°í µÎ ¹ø° Àμö¿¡ º¯È¯ÇÑ ¹®ÀÚ¿À» ÀúÀåÇÒ ¹è¿À» ÁØ´Ù. ¼¼ ¹ø° Àμö radix´Â º¯È¯½Ã »ç¿ëÇÒ Áø¹ýÀ» ÁöÁ¤Çϴµ¥ 10Áø¹ýÀ¸·Î º¯È¯ÇÒ °æ¿ì 10À̶ó°í ¾²¸é µÈ´Ù.
int num=123;
char str[10];
itoa(num,str,10);
ÀÌ Äڵ忡 ÀÇÇØ str¿¡ "123"ÀÌ º¹»çµÉ °ÍÀÌ´Ù. num¿¡ ÀúÀåµÈ ¼öÄ¡°ªÀÌ ¹®ÀÚ¿ ÇüÅ·Π¹Ù²î¾î str ¹è¿¿¡ ÀúÀåµÇ¾úÀ¸¹Ç·Î puts(str)·Î ÀÌ ¹®ÀÚ¿À» Ãâ·ÂÇϸé numÀÇ °ªÀÌ È¸é¿¡ Ãâ·ÂµÈ´Ù. itoa ÇÔ¼öµµ ¹è¿ ³¡ Á¡°ËÀ» ÇÏÁö ¾ÊÀ¸¹Ç·Î µÎ ¹ø° Àμö(À§ Äڵ忡¼ str)·Î ÃæºÐÇÑ ±æÀÌÀÇ ¹è¿À» Á¦°øÇØ¾ß ÇÑ´Ù. itoa ÇÔ¼öÀÇ ¼¼ ¹ø° Àμö radix´Â º¸Åë 10À¸·Î Áִµ¥ Áø¹ýÀ» ¹Ù²Ù°í ½ÍÀ» ¶§´Â ¿øÇÏ´Â Áø¹ýÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â 12345¶ó´Â 10Áø¼ö¸¦ 2Áø¹ý~20Áø¹ý±îÁö ¹Ù²ã°¡¸ç Ãâ·ÂÇØ º» °ÍÀÌ´Ù.
¿¹ Á¦ : itoa |
#include <Turboc.h>
void main(void)
{
int num=12345;
int radix;
char str[32];
for (radix=2;radix<=20;radix++) {
itoa(num,str,radix);
printf("%dÁø¹ý : %s\n",radix,str);
}
}
radix¸¦ Á¦¾î º¯¼ö·Î ÇÏ¿© 2~20±îÁö ·çÇÁ¸¦ µ¹¸é¼ itoa¸¦ ¹Ýº¹ÀûÀ¸·Î È£ÃâÇß´Ù. Ãâ·Â °á°ú´Â ´ÙÀ½°ú °°´Ù.
2Áø¹ý : 11000000111001
3Áø¹ý : 121221020
4Áø¹ý : 3000321
5Áø¹ý : 343340
6Áø¹ý : 133053
7Áø¹ý : 50664
8Áø¹ý : 30071
9Áø¹ý : 17836
10Áø¹ý : 12345
11Áø¹ý : 9303
12Áø¹ý : 7189
13Áø¹ý : 5808
14Áø¹ý : 46db
15Áø¹ý : 39d0
16Áø¹ý : 3039
17Áø¹ý : 28c3
18Áø¹ý : 221f
19Áø¹ý : 1f3e
20Áø¹ý : 1ah5
¶È°°Àº ¼öÄ¡°ª 12345¶óµµ Áø¹ý¿¡ µû¶ó ÀÌ·¸°Ô ´Ù¾çÇÑ ÇüÅ·ΠǥÇöÇÒ ¼ö ÀÖ´Ù. ´Ü, °¢ Áø¹ý¿¡ µû¸¥ Ãâ·Â °á°ú´Â Ç¥Çö ¹æ¹ýÀÌ ´Ù¸¦ »ÓÀÌÁö ¸ðµÎ 10Áø¼ö·Î 12345¶ó´Â °ªÀ» ³ªÅ¸³½´Ù. radix ÀμöÀÇ °¡´ÉÇÑ °ªÀº 2~36±îÁöÀÌ´Ù. ³í¸®ÀûÀ¸·Î 1Áø¹ýÀ̶ó´Â °ÍÀº Á¸ÀçÇÒ ¼ö ¾øÀ¸¹Ç·Î ÃÖ¼Ò Áø¹ýÀº 2Áø¹ýºÎÅÍÀÌ¸ç ¼ýÀÚ Ç¥Çö¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹®ÀÚ°¡ 0~9, a~z±îÁö ÃÑ 36°³»ÓÀ̹ǷΠ36Áø¹ý±îÁö¸¸ Áö¿øÇÑ´Ù.
´ÙÀ½Àº ¹®ÀÚ¿À» Á¤¼ö·Î ¹Ù²Ù´Â ÇÔ¼ö¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ŸÀÔ¿¡ µû¶ó ¸¹Àº ÇÔ¼öµéÀÌ ÁغñµÇ¾î Àִµ¥ ÀÌ Áß atoi ÇÔ¼ö°¡ ±âº» ÇÔ¼öÀÌ´Ù. atoi´Â ¹°·Ð Ascii to IntegerÀÇ ¾àÀÚÀÌ´Ù.
int atoi(const char *string);
long atol(const char *string);
long strtol(const char *nptr, char **endptr, int base);
unsigned long strtoul(const char *nptr, char **endptr, int base);
¹®ÀÚ¿ str¿¡ "123"ÀÌ ÀúÀåµÇ¾î ÀÖÀ» ¶§ atoi(str)Àº ¼öÄ¡°ª 123À» ¸®ÅÏÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ÀÌ¹Ì ¾Õ Àå¿¡¼ main ÇÔ¼öÀÇ Àμö·Î Àü´ÞµÈ ¹®ÀÚ¿À» Á¤¼ö·Î ¹Ù²Ù±â À§ÇØ »ç¿ëÇØ º» ÀûÀÌ ÀÖ´Ù. ¸í·ÉÇà¿¡¼ ÀԷµǴ ÇÁ·Î±×·¥ÀÇ Àμö argv´Â ¹®ÀÚ¿ ¹è¿À̱⠶§¹®¿¡ Á¤¼ö¸¦ ¹Ù·Î ÀԷ¹ÞÀ» ¼ö´Â ¾ø´Ù. ±×·¡¼ Á¤¼ö ÇüÅ·ΠÀÔ·ÂµÈ ¹®ÀÚ¿À» atoi ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Á¤¼ö·Î ¹Ù²ã¼ »ç¿ëÇØ¾ß ÇÑ´Ù.
atoi ÇÔ¼öÀÇ Àμö·Î Àü´ÞµÇ´Â ¹®ÀÚ¿Àº ¼öÄ¡°ªÀÇ ÇüÅ·ΠÀúÀåµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ¼öÄ¡°ª Ç¥Çö¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹®ÀÚ´Â 0~9±îÁöÀÇ ¾Æ¶óºñ¾Æ ¼ýÀÚ¿Í +,- ºÎÈ£ Á¤µµÀÌ´Ù. ±×·¯¹Ç·Î atoi("123"), atoi("-78") ÀÌ·± ½ÄÀÇ ¹®ÀÚ¿À» Àü´ÞÇØ¾ß Á¦´ë·Î º¯È¯µÈ´Ù. atoi("aaa")ó·³ ¼öÄ¡°¡ ¾Æ´Ñ ¹®ÀÚ¿À» Àü´ÞÇÒ °æ¿ì atoi´Â º¯È¯ÇÒ ¼ö ¾ø´Ù´Â Àǹ̷Π0À» ¸®ÅÏÇÑ´Ù.
¸¸¾à ¼öÄ¡¿Í ¹®ÀÚ¿ÀÌ ¼¯¿© ÀÖ´Ù¸é atoi´Â ¿¡·¯¸¦ ¸®ÅÏÇÏ´Â ´ë½Å º¯È¯ °¡´ÉÇÑ ºÎºÐ±îÁö¸¸ º¯È¯ÇÑ´Ù. ¿¹¸¦ µé¾î atoi("12month")¸¦ È£ÃâÇϸé 12°¡ ¸®ÅϵȴÙ. "12month"´Â ºñ·Ï ¿ÏÀüÇÑ ¼öÄ¡°ª ÇüÅÂÀÇ ¹®ÀÚ¿Àº ¾Æ´ÏÁö¸¸ ÃÖ´ëÇÑ Çؼ® °¡´ÉÇÑ ºÎºÐ±îÁö´Â º¯È¯ÇØ ÁÖ´Â °ÍÀÌ´Ù. µû¶ó¼ ¼ýÀÚ¿Í ¹®ÀÚ°¡ ¼¯ÀÎ ¹®ÀÚ¿ÀÇ °æ¿ì º°µµÀÇ Ã³¸®¾øÀÌ ºÎºÐÀûÀÎ º¯È¯ÀÌ °¡´ÉÇÏ´Ù´Â Æí¸®ÇÔÀÌ ÀÖÁö¸¸ Á¤È®ÇÑ º¯È¯ÀÌ ¾Æ´Ï¶ó´Â Á¡¿¡¼´Â ÁÖÀǸ¦ ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.
atol ÇÔ¼ö´Â ¹®ÀÚ¿¿¡ ÀúÀåµÈ ¼öÄ¡¸¦ long ÇüÀ¸·Î º¯È¯Çϴµ¥ 32ºñÆ® ȯ°æ¿¡¼´Â int¿Í longÀÌ °°Àº ŸÀÔÀ̹ǷΠatoi¿Í ¿ÏÀüÈ÷ °°Àº µ¿ÀÛÀ» ÇÑ´Ù. strtol ÇÔ¼ö´Â atoi ÇÔ¼ö¿¡ ºñÇØ Áø¹ýÀ» ÀνÄÇÑ´Ù´Â Á¡¿¡ ÀÖ¾î¼ Á¶±Ý ´õ ±â´ÉÀÌ ¸¹´Ù. atoi´Â ¹®ÀÚ¿¿¡ µé¾î ÀÖ´Â °ªÀ» 10Áø¼ö·Î¸¸ ÀνÄÇÏÁö¸¸ strtol ÇÔ¼ö´Â ¼¼ ¹ø° Àμö base·Î ¹®ÀÚ¿¿¡ µé¾î ÀÖ´Â °ªÀÇ Áø¹ýÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¸¸¾à base°¡ 10À̶ó¸é strtolÀº string Àμö¸¦ 10Áø¹ýÀÇ °ªÀ¸·Î ÀνÄÇϹǷΠÀÌ °æ¿ì´Â atoi ÇÔ¼ö¿Í °°Àº µ¿ÀÛÀ» ÇÑ´Ù. base°¡ 16À̶ó¸é stringÀº 16Áø¼öÀ̹ǷΠ0~9±îÁöÀÇ ¹®ÀÚ ¿Ü¿¡ a~f±îÁöÀÇ ¹®ÀÚµµ ¼ýÀÚ·Î ÀÎÁ¤µÉ °ÍÀÌ´Ù. "10011100"°ú °°ÀÌ ÀÌÁø¼ö ÇüÅ·ΠÀúÀåµÈ ¹®ÀÚ¿µµ strtol ÇÔ¼ö¸¦ »ç¿ëÇϸé Á¤¼ö·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù.
ÁöÁ¤ÇÑ base¿¡ »ç¿ëÇÒ ¼ö ¾ø´Â ¹®ÀÚ°¡ ¹ß°ßµÉ °æ¿ì ±× À§Ä¡¿¡¼ º¯È¯À» ÁßÁöÇÑ´Ù. ¿¹¸¦ µé¾î base°¡ 8À̸é 0~7±îÁöÀÇ ¼ýÀÚ¸¸ »ç¿ëÇÒ ¼ö Àִµ¥ ¹®ÀÚ¿¿¡ "2390"ÀÌ ÀúÀåµÇ¾î ÀÖ´Ù¸é "23"±îÁö¸¸ º¯È¯µÉ °ÍÀÌ´Ù. À̶§ º¯È¯ÀÌ ÁßÁöµÈ ÁöÁ¡ÀÇ ¹øÁö°¡ µÎ ¹ø° Àμö endptr¿¡ ´ëÀԵǹǷΠ¾îµð¼ ÁßÁöµÇ¾ú´ÂÁö¸¦ Á¶»çÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ¿¡·¯ °ËÃâ ±â´ÉÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é strtolÀÇ µÎ ¹ø° Àμö·Î NULLÀ» ÁöÁ¤ÇÏ¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â 16Áø¼ö abcd¸¦ Á¤¼ö·Î º¯È¯ÇÑ ÈÄ ±× °ªÀ» printf·Î Ãâ·ÂÇØ º¸¾Ò´Ù.
¿¹ Á¦ : strtol |
#include <Turboc.h>
void main(void)
{
char *endptr;
char str[]="abcd";
long l=strtol(str,&endptr,16);
printf("%ld\n",l);
}
16Áø¼ö abcd´Â 10Áø¼ö·Î 43981À̹ǷΠ43981ÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù. printfÀÇ Ãâ·Â ¼½ÄÀ» %d ´ë½Å %x¸¦ »ç¿ëÇϸé abcd°¡ ±×´ë·Î Ãâ·ÂµÈ´Ù. strtolÀÌ Á¤¼ö·Î ¹Ù²Û °ªÀ» printfÀÇ %x ¼½ÄÀÌ ´Ù½Ã 16Áø¼ö ÇüÅÂÀÇ ¹®ÀÚ¿·Î ¹Ù²Ù¾î Ãâ·ÂÇϱ⠶§¹®ÀÌ´Ù.