¾î¶² Ŭ·¡½º¸¦ ¿¬±¸ÇÒ ¶§ °¡Àå ¸ÕÀú Á¶»çÇØ¾ß ÇÏ´Â ÇÔ¼ö´Â °´Ã¼¸¦ ¸¸µå´Â »ý¼ºÀÚÀÌ´Ù. string Ŭ·¡½º´Â ¸ðµÎ ¿©¼¸ °³ÀÇ »ý¼ºÀÚ¸¦ Á¤ÀÇÇϰí Àִµ¥ ¿øÇüÀº ´ÙÀ½ µµÇ¥¿Í °°´Ù. ÅÛÇø´ ÇÔ¼öµéÀº ¿øÇüÀÌ ´Ù¼Ò º¹ÀâÇϹǷΠÇì´õ ÆÄÀÏ¿¡ ÀÖ´Â ¼±¾ð¹®À» Á¶±Ý ÆíÁýÇÏ¿© Àб⠽±°Ô Á¤¸®Çß´Ù. ÅÛÇø´ Àμö´Â °¡±ÞÀû ½ÇÁ¦ Àμö·Î Ç¥±âÇϰí Áß°£ ŸÀÔµéÀº ÆòÀÌÇÑ Å¸ÀÔÀ¸·Î ¹Ù²ã¼ Ç¥±âÇϱâ·Î Çϴµ¥ ¿¹¸¦ µé¾î _ElemÀ̶ó°í ¾²´Â °Íº¸´Ù ±×³É char¶ó°í ¾²´Â °ÍÀÌ ´õ ½¬¿ï °ÍÀÌ´Ù. ¶ÇÇÑ size_typeÀº ÇÒ´ç±â°¡ Á¤ÀÇÇÏ´Â Å©±â ŸÀÔÀÌµÇ size_t(°á±¹ unsigned)À̹ǷΠsize_t·Î Ç¥±âÇϱâ·Î ÇÑ´Ù.
¿øÇü |
¼³¸í |
string() |
µðÆúÆ® »ý¼ºÀÚ. ºó ¹®ÀÚ¿À» ¸¸µç´Ù. |
string(const char *s) |
³Î Á¾·á ¹®ÀÚ¿·ÎºÎÅÍ »ý¼ºÇÏ´Â º¯È¯ »ý¼ºÀÚ |
string(const string &str, int pos=0, int num=npos) |
º¹»ç »ý¼ºÀÚ |
string(size_t n, char c) |
c¸¦ n°³ °¡µæ ä¿ò |
string(const char *s, size_t n) |
³Î Á¾·á ¹®ÀÚ¿·ÎºÎÅÍ »ý¼ºÇ쵂 n±æÀÌ È®º¸ |
template<It> string(It begin, It end) |
begin~end»çÀÌÀÇ ¹®ÀÚ·Î ±¸¼ºµÈ ¹®ÀÚ¿ »ý¼º |
µðÆúÆ® »ý¼ºÀÚ, º¹»ç »ý¼ºÀÚ ¹× ¹®ÀÚ¿ »ó¼ö·ÎºÎÅÍÀÇ »ý¼ºÀÚ°¡ ÀÖ°í ¹®ÀÚÀÇ ¹Ýº¹À̳ª ´Ù¸¥ ¹®ÀÚ¿ÀÇ ÀϺθ¸À» ÃëÇÏ´Â »ý¼ºÀÚ µîÀÌ Á¤ÀǵǾî ÀÖ´Ù. ¹®ÀÚ¿À» ¸¸µé ¼ö ÀÖ´Â ¸ðµç ¹æ¹ý¿¡ ´ëÇØ »ý¼ºÀÚ°¡ ´Ù Á¤ÀǵǾî ÀÖ´Ù. °´Ã¼ÀÇ ¼¼°è¿¡¼´Â Á¶±ÝÀÌ¶óµµ Çʿ並 ´À³¥¸¸ÇÑ ÇÔ¼öµéÀº ´Ù Á¤ÀǵǾî ÀÖ´Ù°í º¸¸é °ÅÀÇ Æ²¸²¾ø´Ù. Á¦°øµÇ´Â ±â´ÉÀÇ ¸ñ·ÏÀ» ÀϺη¯ ¿Ü¿ï·Á°í ³ë·ÂÇÒ Çʿ䵵 ¾ø°í ±â´É ÀÚüÀÇ »ó¼¼ÇÑ »ç¿ë¹ýÀ» ±»ÀÌ ¸ô¶óµµ Å« ÁöÀåÀº ¾ø´Ù. OOPÀÇ °³³ä¸¸ ÀÖÀ¸¸é ¶óÀ̺귯¸® »ç¿ë¹ýÀ» ½ÀµæÇÏ´Â °ÍÀº ¾ÆÁÖ ½¬¿î ÀÏÀÌ´Ù. ¿Ö³ÄÇÏ¸é ³»°¡ ¸¸µé¾îµµ ´ç¿¬È÷ Àú·¸°Ô ¸¸µé °Í °°´Ù´Â Á÷°ü·ÂÀÌ Àֱ⠶§¹®ÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ »ý¼ºÀÚµéÀ» ¼ø¼´ë·Î È£ÃâÇÔÀ¸·Î½á ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î string °´Ã¼¸¦ »ý¼ºÇÑ´Ù.
¿¹ Á¦ : stringctor |
#include <Turboc.h>
#include <iostream>
#include <string>
using namespace std;
void main()
{
string s1("test");
string s2(s1);
string s3;
string s4(32,'S');
string s5("very nice day",8);
char *str="abcdefghijklmnopqrstuvwxyz";
string s6(str+5,str+10);
cout << "s1=" << s1 << endl;
cout << "s2=" << s2 << endl;
cout << "s3=" << s3 << endl;
cout << "s4=" << s4 << endl;
cout << "s5=" << s5 << endl;
cout << "s6=" << s6 << endl;
}
s1 ~ s6±îÁö ¿©¼¸°³ÀÇ string °´Ã¼¸¦ »ý¼ºÇÏ°í °á°ú È®ÀÎÀ» À§ÇØ Ãâ·ÂÇØ º¸¾Ò´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
s1=test
s2=test
s3=
s4=SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
s5=very nic
s6=fghij
s1Àº ¹®ÀÚ¿ »ó¼ö·ÎºÎÅÍ »ý¼ºµÇ´Âµ¥ À̶§ s1ÀÇ ¸Þ¸ð¸®´Â Àμö·Î Àü´ÞµÈ ¹®ÀÚ¿ÀÇ ±æÀ̸¸Å ÀÚµ¿À¸·Î ÇÒ´çµÈ´Ù. "test"¹®ÀÚ¿À» ÀúÀåÇϱâ À§Çؼ´Â ÃÖ¼Ò 5¹ÙÀÌÆ®°¡ ÇÊ¿äÇϹǷΠ»ý¼ºÀÚ¿¡¼ ÀÌ ¹®ÀÚ¿À» ÀúÀåÇÒ ¼ö ÀÖ´Â ÃæºÐÇÑ ±æÀ̸¸Å ¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ °ÍÀÌ´Ù. s2´Â s1À» º¹»çÇÏ¿© ¶È°°Àº ³»¿ëÀ» °¡Áö´Â °´Ã¼¸¦ »ý¼ºÇϴµ¥ ÀÌ »ý¼ºÀÚ¿¡¼ ±íÀº º¹»ç¸¦ ÇÒ °ÍÀÓÀº ½±°Ô ÃßÃøÇÒ ¼ö ÀÖ´Ù. s2´Â s1À¸·ÎºÎÅÍ ¸¸µé¾îÁöÁö¸¸ »ý¼º ´Ü°è¿¡¼ °°Àº ¹®ÀÚ¿À» °¡Áú »Ó º°°³ÀÇ µ¶¸³ÀûÀÎ °´Ã¼ÀÌ´Ù. Ãâ·Â °á°ú s1, s2´Â ¸ðµÎ "test"¶ó´Â ¹®ÀÚ¿À» °¡Áö´Âµ¥ ÀÌÈÄ º°°³ÀÇ ¹®ÀÚ¿À» °¡Áú ¼ö ÀÖ´Ù.
s3´Â Àμö°¡ ¾ø´Â µðÆúÆ® »ý¼ºÀÚ·Î »ý¼ºÇߴµ¥ ÀÌ °æ¿ì ºó ¹®ÀÚ¿À» °¡Áö´Â °´Ã¼°¡ »ý¼ºµÈ´Ù. »ý¼ºµÈ Á÷ÈÄ¿¡´Â ÀÏ´Ü ³»¿ëÀ» °¡ÁöÁö ¾ÊÁö¸¸ ÀÌÈÄ ´ëÀÔÀ̳ª ¿¬°á µîÀÇ µ¿ÀÛÀ» ÅëÇØ ¹®ÀÚ¿À» ÀúÀåÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¾î s3=s1+"ing"; ´ëÀÔ¹®À» ½ÇÇàÇϸé s3´Â "testing"ÀÌ µÉ °ÍÀÌ´Ù. s4´Â ¶È°°Àº ¹®ÀÚ¸¦ ¿©·¯ ¹ø ¹Ýº¹Çؼ ¾ò¾îÁö´Â ¹®ÀÚ¿À» »ý¼ºÇϴµ¥ ¿¹Á¦¿¡¼´Â 'S' ¹®ÀÚ 32°³·Î ¹®ÀÚ¿À» ¸¸µé¾ú´Ù. ¾ÆÁÖ ´Ü¼øÇÑ »ý¼ºÀÚÀÌÁö¸¸ ´ÙÀ½°ú °°Àº µµÇ¥¸¦ ±×¸®°í ½ÍÀ» ¶§ ÀÌ »ý¼ºÀÚ°¡ ¾ÆÁÖ À¯¿ëÇÏ´Ù.
'-'¹®ÀÚ 70°³·Î ¼öÆò¼±À» ±×¾ú´Âµ¥ ¹®ÀÚ¿ »ó¼ö·Î ÀÌ·± ¸ð¾çÀ» Á÷Á¢ Ãâ·ÂÇÏ·Á¸é »ç¶÷ÀÌ ÀÏÀÏÀÌ ¼¼¾î°¡¸é¼ ¹®ÀÚ¿À» ¸¸µé°Å³ª ·çÇÁ¸¦ µ¹·Á¾ß ÇÏÁö¸¸ (char, int) »ý¼ºÀÚ¸¦ »ç¿ëÇϸé ÈξÀ ´õ ½±´Ù. s5´Â ¹®ÀÚ¿ »ó¼ö¿¡¼ n°³ÀÇ ¹®ÀÚ¸¸À» ÃëÇØ ¹®ÀÚ¿ °´Ã¼¸¦ »ý¼ºÇÑ´Ù. nÀÌ ¹®ÀÚ¿ »ó¼öº¸´Ù ´õ ªÀ¸¸é ÀϺΠ¹®ÀÚ¿¸¸À¸·Î ¹®ÀÚ¿ÀÌ »ý¼ºµÇ¸ç ´õ ±æ¸é ¹Ì¸® n¸¸ÅÀÇ ¸Þ¸ð¸®¸¦ È®º¸Ç쵂 µÚÂÊÀÇ ¾²·¹±â ¹®ÀÚ±îÁöµµ ¹®ÀÚ¿ÀÇ ÀϺηΠµ¡ºÙÀδÙ.
s6´Â ´Ù¸¥ ¹®ÀÚ¿ÀÇ ÀÏÁ¤ ¹üÀ§·ÎºÎÅÍ ¹®ÀÚ¿À» »ý¼ºÇÑ´Ù. ¿øÇüÀÌ Á¶±Ý º¹ÀâÇÏ°Ô ¼±¾ðµÇ¾î Àִµ¥ µÎ °³ÀÇ ¹Ýº¹ÀÚ¸¦ Àμö·Î ÃëÇØ ¹Ýº¹ÀÚ ¹üÀ§¾ÈÀÇ ³»¿ëÀ» ÃëÇÑ´Ù. ¹Ýº¹ÀÚ´Â STLÀÌ »ç¿ëÇÏ´Â ÀϹÝÈµÈ Æ÷ÀÎÅÍÀε¥ ÀÌ ¿¹Á¦ÀÇ °æ¿ì´Â ¹®ÀÚ¿ Æ÷ÀÎÅͶó°í »ý°¢ÇÏ¸é µÈ´Ù. ¾ËÆÄºªÀÌ ÀúÀåµÈ str¿¡¼ 5~10 ¹üÀ§ÀÇ ¹®ÀÚ¿À» ÃßÃâÇßÀ¸¹Ç·Î s6´Â "fghij"°¡ µÈ´Ù.
STLÀº ¹üÀ§¸¦ ĪÇÒ ¶§ Ç×»ó ½ÃÀÛÁ¡Àº Æ÷ÇÔÇÏÁö¸¸ ³¡Á¡Àº Æ÷ÇÔÇÏÁö ¾ÊÀ¸¹Ç·Î ½ÇÁ¦ »ý¼ºµÇ´Â ¹®ÀÚ¿Àº strÀÇ 5~9»çÀÌÀÇ ¹®ÀÚµéÀÌ´Ù. ¿©¼¸ ¹øÂ° »ý¼ºÀÚ¸¦ »ç¿ëÇÏ¸é ¹®ÀÚ¿À̳ª ´Ù¸¥ stiring °´Ã¼ÀÇ ÀϺΠ¹®ÀÚ¿·ÎºÎÅÍ »õ·Î¿î ¹®ÀÚ¿À» ¸¸µé ¼ö ÀÖ´Ù. ÀÌ»óÀÇ »ý¼ºÀÚ Áß ¾ÕÂÊÀÇ µðÆúÆ®, º¯È¯, º¹»ç »ý¼ºÀÚ ¼ÂÀÌ ÀÚÁÖ »ç¿ëµÇ¸ç ³ª¸ÓÁö »ý¼ºÀڴ Ȱ¿ë ºóµµ°¡ ³·Àº ÆíÀÌ´Ù.
¿¹Á¦ Äڵ忡´Â ¸í½ÃÀûÀ¸·Î º¸ÀÌÁö ¾ÊÁö¸¸ °´Ã¼°¡ ÆÄ±«µÉ ¶§´Â ÆÄ±«ÀÚ°¡ ÀÚµ¿À¸·Î È£ÃâµÈ´Ù. string °´Ã¼´Â °¡º¯ÀûÀÎ ¹®ÀÚ¿ µ¥ÀÌÅ͸¦ °´Ã¼³»¿¡ Á÷Á¢ °¡ÁöÁö ¾ÊÀ¸¸ç µ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ¿© °ü¸®ÇÒ °ÍÀÓÀ» ½±°Ô ÃßÃøÇÒ ¼ö ÀÖ´Ù. »ý¼ºÀÚ°¡ µ¥ÀÌÅÍ ÀúÀåÀ» À§ÇØ ¸Þ¸ð¸®¸¦ ÇÒ´çÇϰí ÀÖÀ¸¹Ç·Î ÆÄ±«ÀÚ¿¡¼´Â ´ç¿¬È÷ ÀÌ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇØ¾ß ÇÑ´Ù. ÆÄ±«ÀÚ°¡ ÇÊ¿äÇÑ Ã³¸®¸¦ ÇϹǷΠ°´Ã¼°¡ »ç¶óÁú ¶§ º°µµÀÇ Ã³¸®¸¦ ÇÒ Çʿ䰡 ¾øÀ¸¸ç Áö¿ª °´Ã¼ÀÏ °æ¿ì ¾²´Ù°¡ ±×³É ¹ö¸®±â¸¸ ÇÏ¸é µÈ´Ù. ¿¹Á¦ÀÇ s1~s6 °´Ã¼µéÀº ¸ðµÎ main ÇÔ¼öÀÇ Áö¿ª °´Ã¼À̹ǷΠº°µµÀÇ Á¤¸® Äڵ尡 ÇÊ¿ä¾ø´Ù.
stringÀº °´Ã¼ÀÇ »ý¼º, ÆÄ±«, ´ëÀÔ, ¿¬°á µîÀÇ ¸ðµç ¸â¹ö ÇÔ¼ö¿Í ¿¬»êÀÚ°¡ ¹öÆÛ ±æÀ̸¦ ÀÚµ¿À¸·Î °ü¸®Çϵµ·Ï µÇ¾î ÀÖ´Ù. µ¥ÀÌÅÍ ±æÀ̸¸Å ¹öÆÛ¸¦ ÇÒ´çÇÏ°í ´Ã¾î³ª¸é ÀçÇÒ´çÇÏ°í ÆÄ±«µÉ ¶§´Â Á¤¸®ÇÑ´Ù. ÀÌ °úÁ¤ÀÌ ÀÚµ¿ÈµÇ¾î ÀÖ±â´Â ÇÏÁö¸¸ ¼º´É»óÀÇ ÀÌÀ¯·Î »ç¿ëÀÚ°¡ Á÷Á¢ ±æÀ̸¦ Á¶»çÇϰųª Á¦¾îÇÏ´Â ¹æ¹ýµµ Á¦°øµÈ´Ù. stringÀº ±æÀ̸¦ Á¶»çÇÏ°í ¸Þ¸ð¸®¸¦ °ü¸®ÇÏ´Â ¸î °¡Áö ¸â¹ö ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ ÅëÇØ stringÀÌ ³»ºÎ ¸Þ¸ð¸®¸¦ ¾î¶»°Ô °ü¸®ÇÏ´ÂÁö ±¸°æÇØ º¸ÀÚ.
¿¹ Á¦ : stringsize |
#include <Turboc.h>
#include <iostream>
#include <string>
using namespace std;
void main()
{
string s("C++ string");
cout << s << " ¹®ÀÚ¿ÀÇ ±æÀÌ = " << s.size() << endl;
cout << s << " ¹®ÀÚ¿ÀÇ ±æÀÌ = " << s.length() << endl;
cout << s << " ¹®ÀÚ¿ÀÇ ÇÒ´ç Å©±â = " << s.capacity() << endl;
cout << s << " ¹®ÀÚ¿ÀÇ ÃÖ´ë ±æÀÌ = " << s.max_size() << endl;
s.resize(6);
cout << s << " ±æÀÌ = " << s.size() << ",ÇÒ´ç Å©±â = " << s.capacity() << endl;
s.reserve(100);
cout << s << " ±æÀÌ = " << s.size() << ",ÇÒ´ç Å©±â = " << s.capacity() << endl;
}
ªÀº string °´Ã¼¸¦ »ý¼ºÇÏ°í ±æÀÌ¿Í °ü·ÃµÈ ¸â¹ö ÇÔ¼öµéÀ» È£ÃâÇØ º¸¾Ò´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
C++ string ¹®ÀÚ¿ÀÇ ±æÀÌ = 10
C++ string ¹®ÀÚ¿ÀÇ ±æÀÌ = 10
C++ string ¹®ÀÚ¿ÀÇ ÇÒ´ç Å©±â = 15
C++ string ¹®ÀÚ¿ÀÇ ÃÖ´ë ±æÀÌ = 4294967294
C++ st ±æÀÌ = 6,ÇÒ´ç Å©±â = 15
C++ st ±æÀÌ = 6,ÇÒ´ç Å©±â = 111
size¿Í length´Â °´Ã¼¿¡ ÀúÀåµÈ ¹®ÀÚ¿ÀÇ ±æÀ̸¦ Á¶»çÇϴµ¥ strlen Ç¥ÁØ ÇÔ¼ö¿Í ±â´É»ó µ¿ÀÏÇÏ´Ù. ³Î Á¾·á ¹®ÀÚ´Â »©°í ¹®ÀÚÀÇ °³¼ö°¡ ¸®ÅϵȴÙ. ¿ª»çÀûÀÎ ÀÌÀ¯·Î ¶È°°Àº ÇÔ¼ö°¡ µÎ °³ Á¦°øµÇ´Âµ¥ length´Â Ç¥ÁØ ÀÌÀüÀÇ ±æÀÌ Á¶»ç ÇÔ¼öÀ̰í size´Â STLÀÌ Ç¥ÁØÀÌ µÈ ÈÄ STL°ú ÇÔ¼ö¸íÀ» ÀϰüµÇ°Ô ¸ÂÃß±â À§ÇØ »õ·Î ¸¸µé¾îÁø °ÍÀÌ´Ù. µÑ Áß ÆíÇÑ´ë·Î »ç¿ëÇÏ¸é µÈ´Ù.
capacityÇÔ¼ö´Â °´Ã¼°¡ ÇÒ´çÇÑ ¸Þ¸ð¸®ÀÇ ¾çÀ» Á¶»çÇϴµ¥ ÀÌ °ªÀº sizeº¸´Ù´Â Ç×»ó Á¶±Ý ´õ Å©´Ù. stringÀº ¹®ÀÚ¿ÀÌ ´Ã¾î³¯ °Í¿¡ ´ëºñÇÏ¿© Ç×»ó Á¶±ÝÀÇ ¿©À¯ºÐÀ» ´õ ÇÒ´çÇØ ³õ´Âµ¥ ¹Ì¸® ÇÒ´çÇØ ³õÁö ¾ÊÀ¸¸é ¹®ÀÚ¿ÀÌ ´Ã¾î³¯ ¶§¸¶´Ù ¸Å¹ø ÀçÇÒ´çÇØ¾ß ÇϹǷΠ¼Óµµ°¡ ´À·ÁÁú °ÍÀÌ´Ù. ÀÌ·± ¹Ì¸® ÇÒ´ç ±â¹ýÀº µ¿Àû ¹è¿¿¡¼µµ ÈçÇÏ°Ô »ç¿ëµÇ´Â ¹æ¹ýÀÌ´Ù.
max_size ÇÔ¼ö´Â ¹®ÀÚ¿ °´Ã¼°¡ °¡Áú ¼ö ÀÖ´Â ÃÖ´ë ±æÀ̸¦ Á¶»çÇϴµ¥ 32ºñÆ® ½Ã½ºÅÛ¿¡¼ ÀÌ °ªÀº unsignedÀÇ ÃÖ´ë°ªº¸´Ù 1 ÀÛÀº °ªÀÌ´Ù. °á±¹ string °´Ã¼ÀÇ ÃÖ´ë ±æÀÌ´Â 42¾ïÀ̳ª µÈ´Ù´Â ¾ê±âÀε¥ ¾îµð±îÁö³ª ÀÌ·ÐÀûÀÎ ÃÖ´ë ±æÀÌÀÏ »Ó ½ÇÁ¦·Î´Â ¹°¸®ÀûÀÎ ¸Þ¸ð¸® ÇѰè±îÁö¸¸ ¾µ ¼ö ÀÖÀ¸¸ç ÀÌ´Â °ð ½ÇÁúÀûÀÎ ¹«ÇÑ ±æÀ̸¦ ÀǹÌÇÑ´Ù. max_size°¡ ¸®ÅÏÇÏ´Â °ªÀº string::npos Á¤Àû ¸â¹ö º¯¼ö·Î Á¤ÀǵǾî Àִµ¥ ÀÌ °ªÀº (unsigned)-1°ú °°´Ù. ½ÇÁ¦ °´Ã¼°¡ ÀÌ ±æÀ̸¦ °¡Áú ¼ö ¾øÀ¸¹Ç·Î npos´Â °Ë»ö ÇÔ¼ö°¡ ½ÇÆÐ¸¦ ¸®ÅÏÇÒ ¶§ ÈçÈ÷ »ç¿ëµÈ´Ù.
string °´Ã¼´Â ÀÚ½ÅÀÌ °¡Áö´Â ¹®ÀÚ¿ÀÇ ±æÀ̸¸Å ¸Þ¸ð¸®¸¦ ÀÚµ¿À¸·Î °ü¸®ÇÏÁö¸¸ »ç¿ëÀÚ°¡ ¿øÇÒ °æ¿ì ±æÀ̸¦ °Á¦·Î º¯°æÇÒ ¼ö ÀÖ´Ù. resize ÇÔ¼ö´Â ¹®ÀÚ¿ÀÇ ±æÀ̸¦ Àμö·Î Àü´ÞµÈ °³¼ö·Î °Á¦ Á¶Á¤ÇÑ´Ù. ¸¸¾à nÀÌ ÇöÀç Å©±âº¸´Ù ´õ ÀÛÀ¸¸é µÚÂÊ ¹®ÀÚ¿Àº Àß¶ó ¹ö¸®¸ç ´õ Å©¸é NULL ¹®ÀڷΠä¿ìµÇ µÎ ¹øÂ° Àμö·Î ä¿ï ¹®ÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î s1.resize(15,'*');¸¦ È£ÃâÇϸé "C++ string*****"°¡ µÈ´Ù.
reserve ÇÔ¼ö´Â ¸Þ¸ð¸®ÀÇ ¿©À¯ºÐÀ» ÁöÁ¤ÇÑ Å©±â¸¸Å ¹Ì¸® È®º¸ÇÑ´Ù. Á¶¸¸°£ ¸Þ¸ð¸®°¡ ´ëÆø ´Ã¾î³¯ ¿¹Á¤À̶ó¸é string °´Ã¼°¡ ¾Ë¾Æ¼ ÀçÇÒ´çÇϵµ·Ï ³»¹ö·Á µÎ´Â °Íº¸´Ù ¹Ì¸® ¿øÇÏ´Â Å©±â¸¸Å ÇÒ´çÇØ ³õ´Â °ÍÀÌ À¯¸®ÇÏ´Ù. ¹Ì¸® ¸Þ¸ð¸®¸¦ È®º¸ÇØ ³õÀ¸¸é ÀçÇÒ´ç ȸ¼ö°¡ ÁÙ¾îµé¹Ç·Î ¼º´É»óÀÇ ÀÌÁ¡À» ÃëÇÒ ¼ö ÀÖ´Ù. reserve ÇÔ¼ö´Â Àμö·Î ÁöÁ¤ÇÑ ±æÀ̸¸Å ¸Þ¸ð¸®¸¦ ¹Ì¸® ÇÒ´çÇ쵂 Åë»ó ÁöÁ¤ÇÑ ¾çº¸´Ù ´õ ¿©À¯ÀÖ°Ô ÇÒ´çÇÑ´Ù. Âü°í·Î ´ÙÀ½ µÎ ÇÔ¼öµµ ¾Ë¾Æ µÎÀÚ.
void clear( );
bool empty( ) const;
clear ÇÔ¼ö´Â ¹®ÀÚ¿À» ¸ðµÎ Áö¿ì´Âµ¥ "" ºó ¹®ÀÚ¿À» ´ëÀÔÇÏ´Â °Í°ú È¿°ú°¡ °°´Ù. empty ÇÔ¼ö´Â ÀÌ °´Ã¼°¡ ºó ¹®ÀÚ¿ÀÎÁö Á¶»çÇϴµ¥ "" ¹®ÀÚ¿ »ó¼ö¿Í ºñ±³ÇÏ´Â °Í°ú °°À¸¸ç ¹®ÀÚ¿ÀÇ ±æÀ̰¡ 0À̸é true¸¦ ¸®ÅÏÇÑ´Ù.
stringÀº ¹®ÀÚ¿¿¡ °ü·ÃµÈ ¸ðµç ±â´ÉÀ» °¡Áö¹Ç·Î ÀüÅëÀûÀÎ ¹®ÀÚ ¹è¿ ´ë½Å »ç¿ëÇϱ⿡ ÃæºÐÇÏ´Ù. ±×·¯³ª ¶§·Î´Â stringÀ¸·ÎºÎÅÍ ¹®ÀÚ ¹è¿À» ¸¸µé¾î¾ß ÇÏ´Â °æ¿ìµµ Àִµ¥ stringÀ» ÀνÄÇÏÁö ¸øÇÏ´Â ÀÌÀüÀÇ ÇÔ¼öµéÀ» È£ÃâÇÒ ¶§´Â ¾ÆÁ÷µµ ¹®ÀÚ ¹è¿À̳ª ¹®ÀÚÇü Æ÷ÀÎÅͰ¡ ÇÊ¿äÇÏ´Ù. ¿¹¸¦ µé¾î strstr ÇÔ¼ö¸¦ È£ÃâÇÏ°í ½Í´Ù°Å³ª string °´Ã¼ÀÇ ³»¿ëÀ» fwriteÇÔ¼ö·Î ÆÄÀÏ¿¡ ÀúÀåÇÏ°í ½ÍÀ» ¶§°¡ ÀÌ¿¡ ÇØ´çÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â string°´Ã¼·ÎºÎÅÍ ¹®ÀÚ¿ÀÇ ³»¿ëÀ» ¾ò´Â ¹æ¹ýÀ» º¸¿© ÁØ´Ù.
¿¹ Á¦ : chararray |
#include <Turboc.h>
#include <iostream>
#include <string>
using namespace std;
void main()
{
string s("char array");
cout << s.data() << endl;
cout << s.c_str() << endl;
char str[128];
strcpy(str,s.c_str());
printf("str = %s\n",str);
}
basic_string Ŭ·¡½º¿¡´Â ¹®ÀÚ¿ÀÇ ³»¿ëÀ» ¾ò´Â data¿Í c_str µÎ °³ÀÇ ¸â¹ö ÇÔ¼ö°¡ ÁغñµÇ¾î ÀÖ´Ù. µÎ ÇÔ¼ö ¸ðµÎ »ó¼ö Æ÷ÀÎÅ͸¦ ¸®ÅÏÇϹǷΠÀÌ ÇÔ¼ö·Î ÀÐÀº Æ÷ÀÎÅÍ¿¡ ´ëÇØ¼´Â Àб⸸ ÇØ¾ß ÇÏ¸ç °ªÀ» º¯°æÇÒ ¼ö´Â ¾ø´Ù. data ÇÔ¼ö´Â string °´Ã¼ÀÇ ³×ÀÌÆ¼ºê µ¥ÀÌÅÍ ¹øÁö¸¦ ±×´ë·Î ¸®ÅÏÇϹǷΠ³Î Á¾·á ¹®ÀÚ°¡ ¾Æ´Ò ¼öµµ ÀÖÁö¸¸ c_strÀº Ç×»ó ³Î Á¾·á ¹®ÀÚ¿ÀÌ´Ù. basic_stringÅÛÇø´ÀÇ µÎ ¹øÂ° Àμö _Traits°¡ ÁöÁ¤ÇÏ´Â ¹®ÀÚ¿ °ü¸® ¹æ½Ä¿¡ µû¶ó ¹®ÀÚ¿ÀÇ ÇüŰ¡ °áÁ¤µÇ¹Ç·Î ³»ºÎÀûÀÎ ÇüŰ¡ Ç×»ó ³Î Á¾·á ¹®ÀÚ¿À̶ó°í ÇÒ ¼ö ¾ø´Ù.
data´Â °´Ã¼ÀÇ ³»ºÎ µ¥ÀÌÅ͸¦ ±×´ë·Î ¸®ÅÏÇÏ´Â °ÍÀ̰í c_strÀº ³Î Á¾·á ¹®ÀÚ¿ÀÌ ¾Æ´Ñ °æ¿ì »çº»À» º¹»çÇÑ ÈÄ ³Î Á¾·á ¹®ÀÚ¿·Î ¹Ù²ã¼ ¸®ÅÏÇÑ´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. ¹°·Ð string Ŭ·¡½º´Â ³Î Á¾·á ¹®ÀÚ¿À̹ǷΠstring °´Ã¼¿¡ ´ëÇØ¼´Â data¿Í c_strÀÌ °°°ÚÁö¸¸ ´Ù¸¥ basic_string ÅÛÇø´ Ŭ·¡½º¿¡¼´Â °á°ú°¡ ´Þ¶óÁú ¼öµµ ÀÖ´Ù. ±×·¡¼ C ½ºÅ¸ÀÏÀÇ ¹®ÀÚ ¹è¿·Î string °´Ã¼¸¦ º¹»çÇÏ°í ½ÍÀ» ¶§´Â c_str ¸â¹ö ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¿Ç´Ù. ¿¹Á¦¿¡¼´Â ±æÀÌ 128ÀÇ ¹®ÀÚÇü ¹è¿ str·Î string °´Ã¼ sÀÇ ³»¿ëÀ» º¹»çÇÑ ÈÄ printf ÇÔ¼ö·Î Ãâ·ÂÇØ º¸¾Ò´Ù. string °´Ã¼ÀÇ ±æÀÌ Á¦ÇÑÀÌ ¾øÀ¸¹Ç·Î ¿øÄ¢´ë·Î ÇÏÀÚ¸é size·Î ±æÀÌ Á¶»ç ÈÄ +1¸¸Å ÇÒ´çÇØ¼ »ç¿ëÇØ¾ß ÇÑ´Ù.
À̻󿡼 ¾Ë¾Æº» ¹Ù¿Í °°ÀÌ string Ŭ·¡½ºÀÇ ¸Þ¸ð¸® °ü¸®´Â ¿ÏÀüÈ÷ ÀÚµ¿ÈµÇ¾î ÀÖ´Ù. °´Ã¼°¡ »ý¼ºµÉ ¶§ ÇÊ¿äÇѸ¸Å ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ÆÄ±«µÉ ¶§ ¾Ë¾Æ¼ Á¤¸®ÇÏ¸ç ´õ ±ä ¹®ÀÚ¿ÀÌ ´ëÀԵǰųª ¿¬°áµÇ¸é ´Ã¾î³ª±âµµ ÇÑ´Ù. ÃÖ´ë Ç¥Çö ±æÀ̵µ ÃæºÐÇÏ°Ô ¼³Á¤µÇ¾î ÀÖÀ¸¹Ç·Î ¹è¿ ¹üÀ§¸¦ ¹þ¾î³ª´Â °ÍÀº °ÆÁ¤ÇÒ Çʿ䰡 ¾ø´Ù.