string °´Ã¼¿¡ ´Ù¸¥ ¹®ÀÚ¿À̳ª ¹®ÀÚ¸¦ ´ëÀÔÇÒ ¶§´Â = ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. °ªÀ» º¯°æÇÒ ¶§´Â = ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù´Â »ó½Ä¿¡ ºÎÇÕÇϱâ À§ÇØ ÀÌ ¿¬»êÀÚ°¡ Á¤ÀǵǾî ÀÖ´Ù. ¼¼ °¡Áö Á¾·ùÀÇ ¹®ÀÚ¿À» ´ëÀÔÇÒ ¼ö ÀÖµµ·Ï ¿À¹ö·ÎµùµÇ¾î ÀÖ´Ù.
string& operator=(char ch);
string& operator=(const char* str);
string& operator=(const string& other);
´ÜÀÏ ¹®ÀÚ, ¹®ÀÚ¿ »ó¼ö ¶Ç´Â ´Ù¸¥ string °´Ã¼¸¦ ´ëÀÔÇÒ ¼ö Àִµ¥ »ó½ÄÀûÀ¸·Î ¹®ÀÚ¿¿¡ ´ëÀÔÇÒ¸¸ÇÑ ¸ðµç °ÍµéÀ» ´Ù ´ëÀÔÇÒ ¼ö ÀÖ´Ù°í º¸¸é µÈ´Ù. ´ëÀÔ ¿¬»êÀÚ´Â ¿ìº¯ÀÇ ±æÀ̸¸Å ¸Þ¸ð¸®¸¦ È®º¸ÇÑ ÈÄ ¸Þ¸ð¸® º¹»ç¸¦ ¼öÇàÇÒ °ÍÀ̸ç string °´Ã¼³¢¸® ´ëÀÔÇÒ ¶§´Â ±íÀº º¹»ç¸¦ ÇÒ °ÍÀÌ´Ù. ¹®ÀÚ¿³¢¸® ¿¬°áÇÒ ¶§´Â += ¿¬»êÀÚ¸¦ »ç¿ëÇϴµ¥ ´ëÀÔ ¿¬»êÀÚ¿Í ¸¶Âù°¡Áö·Î ¼¼ °¡Áö ¹öÀüÀ¸·Î ¿À¹ö·ÎµùµÇ¾î ÀÖ´Ù.
string& operator+=(char ch);
string& operator+=(const char* str);
string& operator+=(const string& other);
¹®ÀÚ¿ »ó¼ö³ª string °´Ã¼¸¦ ¿¬°áÇÒ ¼ö ÀÖ°í ´ÜÀÏ ¹®ÀÚµµ ¿¬°áÇÒ ¼ö Àִµ¥ ´ÜÀÏ ¹®ÀÚ¸¦ ¹®ÀÚ¿ ³¡¿¡ Ãß°¡ÇÏ´Â ±â´ÉÀº C ÇÔ¼ö¿¡´Â ¾ø´Â ±â´ÉÀÌ´Ù. ¿¬°áÇÒ ¶§µµ ¸¶Âù°¡Áö·Î µÎ ¹®ÀÚ¿À» ÇÕÄ£ ±æÀ̸¸Å ¸Þ¸ð¸®¸¦ ÀçÇÒ´çÇÒ °ÍÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â ´ëÀÔ°ú ¿¬°á µ¿ÀÛÀ» Å×½ºÆ®ÇÑ´Ù.
¿¹ Á¦ : stringequalplus |
#include <Turboc.h>
#include <iostream>
#include <string>
using namespace std;
void main()
{
string s1("¾ßÈ£ ½Å³´Ù.");
string s2;
s2="ÀÓÀÇÀÇ ¹®ÀÚ¿";
cout << s2 << endl;
s2=s1;
cout << s2 << endl;
s2='A';
cout << s2 << endl;
s1 += "¹®ÀÚ¿ ¿¬°á.";
cout << s1 << endl;
s1 += s2;
cout << s1 << endl;
s1 += '!';
cout << s1 << endl;
string s3;
s3="s1:"+s1+"s2:"+s2+'.';
cout << s3 << endl;
}
¹®ÀÚ¿³¢¸®, ´ÜÀÏ ¹®ÀÚ¿Í ´ëÀÔ ¹× ¿¬°áÀ» ÇØ º¸¾Ò´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°Àºµ¥ ÄÚµå¿Í ¿¬»ê ÈÄÀÇ °á°ú¸¦ ºñ±³ÇØ º¸¾Æ¶ó.
ÀÓÀÇÀÇ ¹®ÀÚ¿
¾ßÈ£ ½Å³´Ù.
A
¾ßÈ£ ½Å³´Ù.¹®ÀÚ¿ ¿¬°á.
¾ßÈ£ ½Å³´Ù.¹®ÀÚ¿ ¿¬°á.A
¾ßÈ£ ½Å³´Ù.¹®ÀÚ¿ ¿¬°á.A!
s1:¾ßÈ£ ½Å³´Ù.¹®ÀÚ¿ ¿¬°á.A!s2:A.
´ëÀÔ, ¿¬°á ¿¬»êÀÚ´Â ¸ðµÎ stringÇüÀÇ ·¹ÆÛ·±½º¸¦ ¸®ÅÏÇϹǷΠ¿¬¼âÀûÀÎ ´ëÀÔÀ̳ª ¿¬°áµµ °¡´ÉÇÏ´Ù. + ¿¬»êÀÚµµ stringÀÇ ¸â¹ö´Â ¾Æ´ÏÁö¸¸ ÇÁ·»µå·Î Á¤ÀǵǾî ÀÖ¾î ¹®ÀÚ¿, string °´Ã¼, ´ÜÀÏ ¹®ÀÚ¸¦ ¿¬¼âÀûÀ¸·Î ¿¬°áÇÒ ¼ö ÀÖ´Ù. ±×·¡¼ ¿¬°áÇÏ°í ½ÍÀº ´ë»óÀ» ¼ø¼¿¡ »ó°ü¾øÀÌ + ¿¬»êÀÚ·Î Á× ³ª¿Çϱ⸸ ÇÏ¸é ¿øÇÏ´Â ¹®ÀÚ¿À» ½±°Ô ¸¸µé ¼ö ÀÖ´Ù. ¿¹Á¦ÀÇ s3´Â s1°ú s2±×¸®°í Áß°£ Áß°£ÀÇ ¹®ÀÚ¿ »ó¼öµéÀ» ¿¬°áÇÏ¿© ¸¸µé¾îÁø ¹®ÀÚ¿ÀÌ´Ù.
¹®ÀÚ¿À» ´ëÀÔÇÏ°í ¿¬°áÇÏ´Â =, += ¿¬»êÀÚ´Â Ç×»ó ÇÇ¿¬»êÀÚ Àüü¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. ´Ù¸¥ ¹®ÀÚ¿ÀÇ ÀϺθ¸ ´ëÀÔÇϰųª ¿¬°áÇÏ°í ½ÍÀ» ¶§´Â ¿¬»êÀÚ¸¦ ¾µ ¼ö ¾øÀ¸¸ç ´ÙÀ½ µÎ ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. string °´Ã¼³¢¸® ´ëÀÔ, ¿¬°áÇÏ´Â ´ëÇ¥ÀûÀÎ µÎ ÇÔ¼öÀÇ ¿øÇü¸¸ º¸À̴µ¥ ¿¹»óÇÏ´Ù½ÃÇÇ À̺¸´Ù ÈξÀ ´õ ¸¹Àº ¿øÇüÀÌ ¿À¹ö·ÎµùµÇ¾î ÀÖ´Ù. ³ª¸ÓÁö´Â ·¹ÆÛ·±½º¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
string& assign(const string& _str, size_t off, size_t count);
string& append(const string& _str, size_t off, size_t count);
ÀμöÀÇ Çü½ÄÀº Á÷°üÀûÀε¥ str°´Ã¼ÀÇ off À§Ä¡¿¡¼ count°³¼ö¸¸Å¸¸ ´ëÀÔÇϰųª ¿¬°áÇÑ´Ù. = ¿¬»êÀÚ°¡ Ç¥ÁØ strcpy ÇÔ¼ö¶ó¸é assignÀº strncpy ÇÔ¼ö¿¡ ÇØ´çÇÑ´Ù. µ¿ÀÛÀÌ °£´ÜÇϹǷΠ¿¹Á¦¸¸ ÇÑ ¹ø ½ÇÇàÇØ ºÁµµ ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¿¹ Á¦ : AssignAppend |
#include <Turboc.h>
#include <iostream>
#include <string>
using namespace std;
void main()
{
string s1("1234567890");
string s2("abcdefghijklmnopqrstuvwxyz");
string s3;
s3.assign(s1,3,4);
cout << s3 << endl;
s3.append(s2,10,7);
cout << s3 << endl;
}
µÎ °³ÀÇ ¹®ÀÚ¿ °´Ã¼¸¦ ¸¸µé¾î ³õ°í ÀÌ Áß ÀϺθ¦ ´ëÀÔ ¹× ¿¬°áÇØ º¸¾Ò´Ù.
4567
4567klmnopq
s3¹®ÀÚ¿ °´Ã¼´Â µðÆúÆ® »ý¼ºÀÚ¿¡ ÀÇÇØ ºó ¹®ÀÚ¿·Î »ý¼ºµÇ¾ú´Ù°¡ s1ÀÇ ÀϺΠ¹®ÀÚ¿À» ´ëÀÔ¹Þ°í ´Ù½Ã s2ÀÇ ÀϺΠ¹®ÀÚ¿À» ¿¬°áÇÏ¿© ¸¸µé¾îÁ³´Ù.
´ÙÀ½ µÎ ÇÔ¼ö´Â ¹®ÀÚ ¹è¿¿¡ ¹®ÀÚ¿À» º¹»çÇϰųª string °´Ã¼³¢¸® ±³È¯ÇÑ´Ù.
size_type copy(value_type* _Ptr, size_type _Count, size_type _Off = 0) const;
void swap(basic_string& _Str);
copy ÇÔ¼ö´Â _Ptr ¹®ÀÚ ¹è¿¿¡ °´Ã¼ÀÇ _Off À§Ä¡¿¡ ÀÖ´Â ¹®ÀÚµéÀ» _Count °³¼ö¸¸Å º¹»çÇÑ´Ù. _OffÀÇ µðÆúÆ®°ªÀÌ 0À̹ǷΠÀÌ Àμö¸¦ »ý·«ÇÏ¸é °´Ã¼ÀÇ Ã³À½ ¹®ÀÚºÎÅÍ ÁöÁ¤ÇÑ °³¼ö¸¸Å º¹»çµÉ °ÍÀÌ´Ù. ÁöÁ¤ÇÑ °³¼ö¸¸Å¸¸ Á¤È®ÇÏ°Ô º¹»çÇϹǷΠ³Î Á¾·á ¹®ÀÚ´Â ºÙÀÌÁö ¾Ê´Â´Ù. ¸¸¾à °´Ã¼ÀÇ ¹®ÀÚ¿ ±æÀ̰¡ _Countº¸´Ù ´õ ÀÛÀ¸¸é °´Ã¼ÀÇ ±æÀ̸¸Å¸¸ º¹»çµÈ´Ù. _Ptr ¹è¿Àº º¹»ç¹ÞÀ» ¹®ÀÚ¿ÀÇ ±æÀ̸¸Å ÃæºÐÇÑ ±æÀ̸¦ °¡Á®¾ß Çϴµ¥ ¸¸¾à ÀÌ ±æÀ̰¡ ºÎÁ·ÇÏ¸é °á°ú´Â ¿¹ÃøÇÒ ¼ö ¾ø´Ù. ´Ù¿îµÉ ¼öµµ ÀÖ´Ù´Â ¾ê±âÀε¥ ½ÃÀÛ ¹øÁö¸¸ Àü´ÞµÇ´Â ¹®ÀÚ ¹è¿ÀÇ ±æÀÌ´Â C++¿¡¼µµ ¿©ÀüÈ÷ ¾Ë ¼ö ¾øÀ¸¹Ç·Î ¾îÂîÇÒ µµ¸®°¡ ¾ø´Ù.
copy ÇÔ¼ö¸¦ »ç¿ëÇϸé string °´Ã¼ÀÇ ³»¿ëÀ» ¹®ÀÚ ¹è¿·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù. swapÇÔ¼ö´Â À̸§ ±×´ë·Î µÎ ¹®ÀÚ¿ÀÇ ³»¿ëÀ» ±³È¯Çϴµ¥ À̶§ µÎ °´Ã¼ÀÇ ¸Þ¸ð¸®´Â ÀÚµ¿À¸·Î °ü¸®µÈ´Ù. ÀÌ µÎ ÇÔ¼öÀÇ µ¿ÀÛ È®ÀÎÀ» À§ÇÑ °£´ÜÇÑ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ.
¿¹ Á¦ : CopySwap |
#include <Turboc.h>
#include <iostream>
#include <string>
using namespace std;
void main()
{
string s("1234567890");
char str[128]="abcdefghijklmnopqrstuvwxyz";
s.copy(str,5,3);
cout << str << endl;
string s1("dog");
string s2("cow");
cout << "s1:" << s1 << "s2:" << s2 << endl;
s1.swap(s2);
cout << "s1:" << s1 << "s2:" << s2 << endl;
}
sÀÇ copy ÇÔ¼ö·Î 3¹øÂ° ¹®ÀÚºÎÅÍ ±æÀÌ 5¸¸ÅÀ» str ¹è¿·Î º¹»çÇØ º¸¾Ò´Ù. strÀÇ Ã¹ ´Ù¼¸ ¹®ÀÚ°¡ sÀÇ ºÎºÐ ¹®ÀÚ¿·Î ´ëüµÉ °ÍÀÌ´Ù. ±×¸®°í s1, s2 µÎ ¹®ÀÚ¿ °´Ã¼¸¦ swap ÇÔ¼ö·Î ±³È¯ÇØ º¸¾Ò´Ù.
45678fghijklmnopqrstuvwxyz
s1:dogs2:cow
s1:cows2:dog
¸¸¾à copy ÇÔ¼ö·Î ¹è¿ÀÇ Áß°£Âë¿¡ ¹®ÀÚ¿À» º¹»çÇÏ°í ½Í´Ù¸é ù ¹øÂ° ÀμöÀÎ Æ÷ÀÎÅÍ¿¡ Á¤¼ö¸¦ ´õÇϱ⸸ ÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î strÀÇ 4¹øÂ° À§Ä¡¿¡ ¹®ÀÚ¿À» º¹»çÇÏ°í ½Í´Ù¸é s1.copy(str+4,5,3)À» È£ÃâÇÑ´Ù. swap ÇÔ¼ö´Â µÎ °´Ã¼ÀÇ ³»¿ëÀ» ±³È¯ÇϹǷΠȣÃâ °´Ã¼¿Í ÇÇ¿¬»êÀÚ¸¦ ¹Ù²ãµµ °á°ú´Â µ¿ÀÏÇÏ´Ù. Áï s2.swap(s1)À̶ó°í ÇØµµ ¶È°°´Ù.