ÇÁ·Î±×·¡¹Ö

 3200, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   È£¹Ú
   C++ ÇÔ¼ö °ü·Ã Áú¹®µå¸³´Ï´Ù~

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&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 : 4387     Date : 2014/07/28 07:36