http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=6479 [º¹»ç]
#include <iostream>
using namespace std;
class MyString {
private:
char *pbuf;
public:
MyString(const char *s = NULL);
MyString(MyString& s);
~MyString();
void print();
int getSize();
MyString operator+(MyString& s);
};
MyString::MyString(const char *s) {
if (s == NULL)
{
pbuf = new char[1];
pbuf[0] = NULL;
}
else
{
pbuf = new char[::strlen(s) + 1];
strcpy_s(pbuf, strlen(s) + 1, s);
}
}
MyString::MyString(MyString &s)
{
pbuf = new char[s.getSize() + 1];
strcpy_s(pbuf, s.getSize() + 1, s.pbuf);
}
MyString::~MyString()
{
if (pbuf)
delete[] pbuf;
}
void MyString::print()
{
cout << pbuf << endl;
}
int MyString::getSize()
{
return strlen(pbuf);
}
MyString MyString::operator+(MyString& s) { // ¿À·ù°¡ ³ª´Â ÇÔ¼ö
char *temp = new char[getSize() + s.getSize() + 1];
strcpy_s(temp, getSize(), pbuf);
strcat_s(temp,s.getSize() + 1, s.pbuf);
MyString r(temp);
delete[] temp;
return r;
}
int main() {
MyString s1("Hello ");
MyString s2("World!");
s2.print(); // ¿©±â±îÁø Á¤»ó ½ÇÇàµÊ.
MyString s3 = s1 + s2;
s1.print();
s2.print();
s3.print();
return 0;
}
------------------------------------------
À§¿¡°¡ ÄÚµå ³»¿ëÀÔ´Ï´Ù. À§ Äڵ带 ½ÇÇàÇϸé
ÄÄÆÄÀÏ ½Ã¿£ ¿¡·¯°¡ ³ªÁö ¾Ê´Âµ¥ ½ÇÇà½Ã
¹öÆÛ °ø°£ÀÌ ¸ðÀÚ¶ó´Ù¸é¼ ¿¡·¯°¡ ¶ß´õ±º¿ä. ÀÌ ÄÚµå ¿øº»Àº
3³âÀü ÃâÆÇµÈ Ã¥ÀÇ Äڵ带 ±×´ë·Î ¿Å°ÜÀûÀº °Çµ¥¿ä, ¹®Á¦Á¡ÀÌ ´Ù¸§ ¾Æ´Ñ
ÄÄÆÄÀÏ·¯¸¦ ºñÁê¾ó ½ºÆ©µð¿À 2013À¸·Î ¹Ù²Ù¸é¼ strcpy¸¦ °æ°í°¡ ¾Æ´Ï¶ó
¿¡·¯°¡ ³ª°Ô ¹Ù²ñÀ¸·Î½á strcpy_s·Î ÀÓÀÇ·Î ¼öÁ¤Çؼ ¾µ ¼ö ¹Û¿¡ ¾ø´õ¶ó±¸¿ä.
±×·¡¼ ¿ø¹®¿¡¼ strcpy¸¦ strcpy_s, strcatµµ strcat_s·Î ¼öÁ¤Çß½À´Ï´Ù.
±×·¨´õ´Ï ÀÌ·¸°Ô ¿¹»ó¸øÇÑ ¿À·ù°¡ ³ª³×¿ä. ¾î¶»°Ô ÇØ¾ß ¿À·ù°¡ ÇØ°áµÉ±î¿ä? |
Hit : 3387 Date : 2014/07/28 07:36
|