1581, 73/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   BLu2Scr22n
   À½?[Æß]string Çì´õ

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=1960 [º¹»ç]


36-2-°¡.¹®ÀÚ¿­ Ŭ·¡½º
C/C++Àº ¾ð¾î Â÷¿ø¿¡¼­ ¹®ÀÚ¿­ ŸÀÔÀ» Á¦°øÇÏÁö ¾Ê±â ¶§¹®¿¡ ´Ù¼Ò ºÒÆíÇÑ ¸éÀÌ ÀÖ´Ù. ´ë½Å ¹®ÀÚÇü ¹è¿­·Î ¹®ÀÚ¿­À» Ç¥ÇöÇϴµ¥ ¿©·¯ ¸ð·Î ±ÍÂúÀº ÀϵéÀÌ ¸¹°í ¶§·Î´Â ¹Ì¸® Á¤ÇÑ ¹è¿­ Å©±â¸¦ ¹þ¾î³ª¸é À§ÇèÇØÁö±âµµ ÇÑ´Ù. ±×·¯³ª ¾ð¾î Â÷¿ø¿¡¼­ Á¦°øÇÏ´Â ¹®ÀÚ¿­ ŸÀÔÀÌ ¾øÀ» »ÓÀÌÁö À̸¦ º¸¿ÏÇÒ ¼ö Àִ Ŭ·¡½º¶ó´Â ¸·°­ÇÑ µµ±¸°¡ ÀÖ´Ù. C++Àº ¹®ÀÚ¿­ ŸÀÔÀ» Á¦°øÇÏÁö ¾Ê´Â ´ë½Å »ý¼ºÀÚ, Æı«ÀÚ, ¿¬»êÀÚ ¿À¹ö·Îµù µîÀÇ ¹®¹ýÀû ÀåÄ¡¸¦ Á¦°øÇϸç À̸¦ È°¿ëÇÏ¸é º£ÀÌÁ÷°°Àº °í±Þ¾ð¾îÀÇ ¹®ÀÚ¿­À» ¸¸µé ¼ö ÀÖ°í ¿ÀÈ÷·Á ±¸ÇöÀÇ ÀÚÀ¯°¡ º¸ÀåµÇ¹Ç·Î ÈξÀ ´õ ¼º´ÉÀÌ ÁÁ°í ¸ñÀû¿¡ ¸Â´Â ¹®ÀÚ¿­À» ¸¸µé¾î ¾µ ¼ö ÀÖ´Ù.

¾Õ¿¡¼­ ¿ì¸®´Â StrÀ̶ó´Â À̸§À¸·Î ¹®ÀÚ¿­ Ŭ·¡½º¸¦ ÀÌ¹Ì ¸¸µé¾î º» ¹Ù Àִµ¥ ÀÌ Å¬·¡½º¸¸ Çصµ °í±Þ¾ð¾îÀÇ ¹®ÀÚ¿­ ŸÀÔ Èä³»¸¦ ±×·²µíÇÏ°Ô ³½´Ù. ÇÏÁö¸¸ ½Ç½À¿ë Ŭ·¡½º¶ó ±â´ÉÀÌ ÃæºÐÇÏÁö ¾Ê°í ¹ü¿ë¼ºµµ ¶³¾îÁö´Â °ÍÀÌ »ç½ÇÀÌ´Ù. ´©±º°¡°¡ ¹®ÀÚ¿­ Ŭ·¡½º¸¦ Àß ¸¸µé¾î¼­ °ø°³ÇÑ´Ù¸é ¸¹Àº °³¹ßÀÚµéÀÌ ÀÌ Å¬·¡½º¸¦ º°´Ù¸¥ ³ë·Â¾øÀÌ Àç»ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾Æ¸¶ ¿©·¯ºÐµéµµ ÀÌ¹Ì ¸¸µé¾îÁø ¹®ÀÚ¿­ Ŭ·¡½º°¡ ÀÖÁö ¾ÊÀ»±î ãÀ» °ÍÀÌ´Ù. ÀÌ Ã¥¿¡¼­ ¾ÕÀå¿¡¼­ ¸¸µé¾ú´ø StrÀ̶ó´Â Ŭ·¡½ºµµ ÀÖ±â´Â ÇÏÁö¸¸ ¿ØÁö ¿¹Á¦¶ó ¸ø¹Ì´õ¿ö º¸ÀδÙ. ¹°·Ð À̺¸´Ù ÈξÀ ´õ Àß ¸¸µé¾îÁø Àç»ç¿ë °¡´ÉÇÑ ¹®ÀÚ¿­ Ŭ·¡½ºµéÀÌ ¸¹ÀÌ ÀÖ´Ù. ¸¹Àº »ç¶÷µéÀÌ ¹Ù¶ó´Â °ÍÀº Ç×»ó Çö½Ç·Î ³ªÅ¸³ª´Â ¹ýÀÌ´Ù.

ºñÁÖ¾ó C++ÀÇ ±âº» ¶óÀ̺귯¸®ÀÎ MFC¿¡´Â CStringÀ̶ó´Â ¸ÚÁø Ŭ·¡½º°¡ ÀÖ°í °ø°³ ÀÚ·á½ÇÀ» µÚÁ® º¸¸é ¾µ¸¸ÇÑ Å¬·¡½ºµéÀÌ ³Î·Á ÀÖ´Ù. ±×·¯³ª ÀÌ·± °ÍµéÀº ±â´É»óÀÇ ¹®Á¦´Â ¾øÁö¸¸ ¾ð¾î Â÷¿øÀÇ Ç¥ÁØÀÌ ¾Æ´Ï¹Ç·Î ¾Æ¹«·¡µµ ȣȯ¼ºÀÌ ¶³¾îÁø´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ¿©±â¼­ ¼Ò°³ÇÏ´Â string Ŭ·¡½º´Â ¿ì¸®°¡ ±×Åä·Ï ¹Ù¶ó´Â Ç¥ÁØ ¹®ÀÚ¿­ Ŭ·¡½ºÀÌ´Ù. 14882 Ç¥ÁØ¿¡¼­ Á¤ÀÇÇÏ´Â C++ Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ ÀϺÎÀ̹ǷΠǥÁØÀ» ÁؼöÇÏ´Â ¸ðµç ÄÄÆÄÀÏ·¯°¡ ÀÌ Å¬·¡½º¸¦ Á¦°øÇÑ´Ù. µû¶ó¼­ ȣȯ¼º, À̽ļº µîÀ» °ÆÁ¤ÇÒ ÇÊ¿ä¾øÀÌ ¾ðÁ¦³ª »ç¿ë °¡´ÉÇÏ´Ù.

string Ŭ·¡½º´Â string Çì´õ ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖÀ¸¸ç std ³×ÀÓ ½ºÆäÀ̽º¿¡ Æ÷ÇԵǾî ÀÖ´Ù. ±×·¡¼­ ÀÌ Å¬·¡½º¸¦ ¾²°í ½Í´Ù¸é string Çì´õ(string.h°¡ ¾Æ´ÔÀ» À¯ÀÇÇÏÀÚ)¸¦ ÀÎŬ·çµåÇÏ°í std ³×ÀÓ ½ºÆäÀ̽º¿¡ ´ëÇØ using Áö½ÃÀÚ¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. stringÀº ÅÛÇø´ ±â¹ÝÀÇ Å¬·¡½ºÀ̹ǷΠÇÙ½É ÄÚµåµéÀº °ÅÀÇ ´ëºÎºÐ Çì´õ ÆÄÀÏ¿¡ ÀÛ¼ºµÇ¾î ÀÖÀ¸¸ç ÀÌ Çì´õ¸¦ ¿­¾î º¸¸é ¼Ò½º¸¦ Á÷Á¢ º¼ ¼ö ÀÖ´Ù. Çì´õ ÆÄÀÏ¿¡´Â ´ÙÀ½°ú °°Àº basic_stringÀ̶ó´Â Ŭ·¡½º ÅÛÇø´À» Á¤ÀÇÇϴµ¥ ¼±¾ð¹®Àº ´ÙÀ½°ú °°´Ù.



template<class _Elem, class _Traits = char_traits<_Elem>, class _Ax = allocator<_Elem> >

class basic_string { ¸â¹ö ¸ñ·Ï };



¼±¾ð¹®ÀÌ ´Ù¼Ò º¹ÀâÇѵ¥ ÅÛÇø´ÀÇ Àμö°¡ ¼¼ °³³ª µÇ¸ç ÀμöµéÀ» Á¶ÇÕÇÏ´Â ¹æ½Ä¿¡ µû¶ó ´Ù¾çÇÑ ÇüÅÂÀÇ ¹®ÀÚ¿­ Ŭ·¡½º¸¦ ¸¸µé ¼ö ÀÖ´Ù. µÚÂÊ µÎ °³ÀÇ Àμö¿¡ ´ëÇؼ­´Â µðÆúÆ®°¡ Àû¿ëµÇ´Âµ¥ ´ëºÎºÐÀÇ °æ¿ì µðÆúÆ®°¡ »ç¿ëµÇÁö¸¸ ¿øÇÏ¸é º¯°æÇÒ ¼ö ÀÖ´Ù. ¾ÕÂÊ µÎ ÀμöÀÇ Àǹ̴ basic_ostreamÀÇ °æ¿ì¿Í °°À¸¹Ç·Î ¸¶Áö¸· Àμö _Ax¿¡ ´ëÇؼ­¸¸ ¾Ë¾Æº¸ÀÚ.

¹®ÀÚ¿­ Ŭ·¡½º´Â °¡º¯ ±æÀ̸¦ ´Ù·ê ¼ö ÀÖ¾î¾ß ÇϹǷΠº»ÁúÀûÀ¸·Î ¸Þ¸ð¸®¸¦ µ¿Àû ÇÒ´çÇØ¾ß ÇÑ´Ù. _Ax Àμö´Â ¹®ÀÚ¿­ °ü¸®¸¦ À§ÇÑ ¸Þ¸ð¸®¸¦ ¾î¶»°Ô ÇÒ´çÇÏ°í ÇØÁ¦ÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â ÇÒ´ç±âÀÌ´Ù. µðÆúÆ®ÀÎ allocator<_Elem>Àº C++ÀÇ ÇÒ´ç ¿¬»êÀÚÀÎ new, delete¸¦ »ç¿ëÇϴµ¥ ¿øÇÑ´Ù¸é ´Ù¸¥ °ÍÀ¸·Î ¹Ù²Ü ¼ö ÀÖ´Ù. malloc, free¸¦ ¾²´Â ¹æ½Äµµ °¡´ÉÇϸç ÃÊ´ë¿ë·®ÀÇ ¸Þ¸ð¸®¸¦ °ü¸®ÇØ¾ß ÇÑ´Ù¸é Win32ÀÇ °¡»ó ¸Þ¸ð¸®¸¦ Á÷Á¢ ÇÒ´çÇÏ´Â ¹æ½ÄÀ» ¾µ ¼öµµ ÀÖ´Ù. ¶Ç´Â ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ ºó¹øÈ÷ º¯ÇÑ´Ù¸é ¹Ì¸® ´Ù·®ÀÇ ¸Þ¸ð¸®¸¦ È®º¸ÇÏ¿© ÀçÇÒ´ç ȸ¼ö¸¦ ÁÙÀÌ´Â ÃÖÀûÈ­µÈ ¹æ¹ýÀ» ±¸»çÇÒ ¼öµµ ÀÖ´Ù.

µÚÂÊÀÇ µÎ Àμö´Â µðÆúÆ® °´Ã¼°¡ ÁöÁ¤µÇ¾î ÀÖÀ¸¸ç ÀÌ °´Ã¼µéµµ C++ Ç¥ÁØ ¶óÀ̺귯¸®¿¡ ÀÇÇØ ÀÌ¹Ì ±¸ÇöµÇ¾î ÀÖÀ¸¹Ç·Î »ý·« °¡´ÉÇÏ´Ù. »ý·«½Ã ¹«³­ÇÑ µðÆúÆ® °´Ã¼°¡ ¼±ÅõǴµ¥ À̶§ ¸¸µé¾îÁö´Â Ŭ·¡½º´Â new, delete·Î ÇÒ´çµÇ´Â ³ÎÁ¾·á ¹®ÀÚ¿­ÀÌ´Ù. ÀÌ Æ÷¸ËÀÌ °¡Àå ÀϹÝÀûÀ̹ǷΠ´ë°³ÀÇ °æ¿ì µðÆúÆ®¸¸ »ç¿ëÇصµ ¹«³­ÇÏ´Ù.

basic_string ÅÛÇø´Àº ÃæºÐÇÑ È®À强°ú ÀϹݼºÀ» °í·ÁÇÏ¿© ÀÛ¼ºµÇ¾î ÀÖ´Ù. ¿î¿µ ȯ°æÀÌ ¹Ù²î°Å³ª ¹®ÀÚ¿­ÀÇ Á¤ÀÇ°¡ ´Þ¶óÁö´õ¶óµµ ÀûÀýÇÑ ¹®ÀÚ¿­ Ŭ·¡½º¸¦ »ý¼ºÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÇ¾î ÀÖÀ» »ÓÀÌÁö ¼¼ Àμö¸¦ ¹Ýµå½Ã ÁöÁ¤Çؾ߸¸ ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. Áï, ¿Ø¸¸ÇÏ¸é µðÆúÆ®¸¦ ¾²µÇ ²À ¹Ù²Ù°í ½Í´Ù¸é ¿øÇϴ´ë·Î ÇÒ ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ´Â °ÍÀÌ´Ù. ´Ù¾çÇÑ ÇüŸ¦ Áö¿øÇÏ·Á°í ÇÏ´Ù º¸´Ï ¼±¾ð¹®ÀÌ º¹ÀâÇØÁ³´Ù.

½ÇÁ¦ ÇÁ·Î±×·¡¹Ö¿¡¼­´Â ù ¹ø° Àμö·Î ¹®ÀÚÀÇ Å¸ÀÔ¸¸ ¹àÈ÷´Â Á¤µµ¸é ÃæºÐÇÏ´Ù. ÇöÀç ¹®ÀÚ¸¦ Ç¥ÇöÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö Àִ ŸÀÔÀº char, wchar_t µÎ °¡Áö°¡ Àִµ¥ ÀÌ µÎ °¡Áö¿¡ ´ëÇؼ­´Â ´ÙÀ½°ú °°Àº Ư¼öÈ­ ¹öÀüÀÌ ¹Ì¸® ¼±¾ðµÇ¾î ÀÖ´Ù.



typedef basic_string<char> string;

typedef basic_string<wchar_t> wstring;



stringÀº ANSI ¹®ÀÚ¿­À̸ç wstringÀº À¯´ÏÄÚµå ¹®ÀÚ¿­À» Ç¥ÇöÇÑ´Ù. µÎ Ŭ·¡½º ¸ðµÎ ù ¹ø° Àμö¸¸ ÁöÁ¤ÇßÀ¸¹Ç·Î µðÆúÆ®¿¡ ÀÇÇØ ³Î Á¾·á ¹®ÀÚ¿­À̸ç new, delete·Î ¸Þ¸ð¸®¸¦ °ü¸®ÇÑ´Ù. ANSI¿Í À¯´ÏÄÚµå´Â ÇÁ·ÎÁ§Æ®ÀÇ ½ÇÇà ȯ°æ¿¡ µû¶ó ¼±ÅõǾî¾ß Ç쵂 µÎ Ŭ·¡½º´Â ¹®ÀÚ Äڵ常 ´Ù¸¦ »Ó ¸â¹ö ÇÔ¼öÀÇ ¸ñ·ÏÀ̳ª ±â´ÉÀÌ ´Ù¸¥ °ÍÀº ¾Æ´Ï´Ù. °°Àº ÅÛÇø´À¸·Î ¸¸µé¾îÁ³À¸¹Ç·Î ³»ºÎ ¾Ë°í¸®ÁòÀº µ¿ÀÏÇÒ ¼ö¹Û¿¡ ¾ø´Ù. ±×·¡¼­ ¿©±â¼­´Â ANSI ¹®ÀÚ¿­À» ´Ù·ç´Â string¿¡ ´ëÇؼ­¸¸ ´Ù·çµÇ wstringµµ ¶È°°Àº ¹æ¹ýÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

string Ŭ·¡½º´Â ±× ÀÚü·Î µ¶¸³ÀûÀ̱â´Â ÇÏÁö¸¸ ´ÙÀ½ ÀåÀÇ ÁÖÁ¦ÀÎ STL°úµµ ±íÀº ¿¬°üÀÌ ÀÖ´Ù. ¹Ýº¹ÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç reverse, sort µîÀÇ STL ¾Ë°í¸®ÁòÀ» string¿¡µµ ±×´ë·Î Àû¿ëÇÒ ¼ö ÀÖ°í ÄÁÅ×ÀÌ³Ê¿Í ÇÔ²² »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. stringÀº STLÀÇ ÀϺδ ¾Æ´ÏÁö¸¸ STLÀ» ¸¸³ª¸é ÈξÀ ´õ ¸¹Àº ÀÏÀ» ÇÒ ¼ö ÀÖ´Ù.


  Hit : 7214     Date : 2012/02/13 01:35



    
milkgun ¹º°¡;; ³Ê¹« º¹ÀâÇØ;; Á¤¸®Á» ÇØÁÖÁö... 2012/02/23  
141   letmein ´Ô ÇØÄ· Àü±îÁö Ç®¸é µÈ´Ù°í Çß´ø ¹®Á¦¿ä     blueh4g
02/03 7085
140   ³ëÆ®ºÏ Ãßõ[3]     BLUE58
12/30 6026
139   Æí¸®ÇÏÁö¸¸ Á¤¸» ¸ð¸£½Ã´Â ´ÜÃàÅ°..[20]     blue21
12/21 9579
138   ¡áÇϵåµð½ºÅ©ÀÇ À̸§[4]     BLu2Scr22n
01/21 6841
137   ¡áHDD (ÇÏµå µð½ºÅ©) Layout ¼³Á¤[1]     BLu2Scr22n
01/24 6578
136   [Æß]etc °ü·Ã ¸í·É¾î [2]     BLu2Scr22n
01/27 6061
135   [Æß]¡áƯÁ¤ ÇÁ·Î¼¼½º°¡ ¹®Á¦°¡ ¹ß»ýÇßÀ» °æ¿ì¿¡ ÀÛ¾÷ÇÏ´Â ÀýÂ÷ ¹æ¹ý[2]     BLu2Scr22n
01/29 6054
134   [Æß]¿ÍÀÌ¾î »þÅ© °ü·Ã ¹®¼­[6]     BLu2Scr22n
02/05 6528
133   [ÀÚÀÛ] ¹Ýº¹¹®(C)¾ð¾î ¸¦ ..¤¾¤¾[1]     BLu2Scr22n
02/09 6384
132   [Æß]À̹ø ÇØÄ·¿¡ µµ¿òµÉ ³×Æ®¿öÅ© ±âÃÊ ÀÚ·á ÀÔ´Ï´Ù.[1]     BLu2Scr22n
02/11 6743
131   [¼öÁ¤ÇÑ Æß]Á¦¸ñ ºÙÀ̱Ⱑ ¾Ö¸ÅÇÑ °­ÁÂ.     BLu2Scr22n
02/11 6761
130   [Æß] ¿©±â ¿Ã·Áµµ µÉÁö ¸ð¸£°ÚÁö¸¸ °£´ÜÇÑ ÇØÅ· Á¡°Ë¹ý ÀÔ´Ï´Ù..¤¾¤¾[2]     BLu2Scr22n
02/12 7727
129   ±âºÐÁÁ¾Æ¼­ Çϳª´õ~!!![Æß]³ëÃâ ¸·±â etc_issue[2]     BLu2Scr22n
02/12 7055
128   È÷È÷È÷ ÇпøÀÚ·á ¹æÃâÁß.. ÀÌ·¡µµ µÇ³ª?[Æß]ÀϹݻç¿ëÀÚ SSH ¸·±â[1]     BLu2Scr22n
02/13 6647
127   [C]Àç±Í     BLu2Scr22n
02/13 6041
  À½?[Æß]string Çì´õ[1]     BLu2Scr22n
02/13 7213
125   Ä«À̽ºÆ®¿¡ ÄÚµå°ÔÀÌÆ® 2011 º¸°í¼­ ÀÔ´Ï´Ù.[3]     BLu2Scr22n
02/23 6669
124   [¿äûÀÚ·á] ³×·Î(ÃֽŹöÀü)¿¡¼­ À̹ÌÁö ÆÄÀÏ ±Á±â     blackcoder
02/28 9676
123   ¾Ë±â ¾î·Æ°Ô ¼³¸íÇÑ Buffer Overflow[4]     blackcoder
02/17 12835
122   windows xp¿Í linux ¸ÖƼºÎÆÃ(sataÇϵåµð½ºÅ© ¼³Ä¡)     bitcom01
08/11 8906
[1]..[71][72] 73 [74][75][76][77][78][79][80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org