36-2-³ª.¸Þ¸ð¸® °ü¸®

¾î¶² Ŭ·¡½º¸¦ ¿¬±¸ÇÒ ¶§ °¡Àå ¸ÕÀú Á¶»çÇØ¾ß ÇÏ´Â ÇÔ¼ö´Â °´Ã¼¸¦ ¸¸µå´Â »ý¼ºÀÚÀÌ´Ù. 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 Ŭ·¡½ºÀÇ ¸Þ¸ð¸® °ü¸®´Â ¿ÏÀüÈ÷ ÀÚµ¿È­µÇ¾î ÀÖ´Ù. °´Ã¼°¡ »ý¼ºµÉ ¶§ ÇÊ¿äÇѸ¸Å­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í Æı«µÉ ¶§ ¾Ë¾Æ¼­ Á¤¸®ÇÏ¸ç ´õ ±ä ¹®ÀÚ¿­ÀÌ ´ëÀԵǰųª ¿¬°áµÇ¸é ´Ã¾î³ª±âµµ ÇÑ´Ù. ÃÖ´ë Ç¥Çö ±æÀ̵µ ÃæºÐÇÏ°Ô ¼³Á¤µÇ¾î ÀÖÀ¸¹Ç·Î ¹è¿­ ¹üÀ§¸¦ ¹þ¾î³ª´Â °ÍÀº °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.