美文网首页
C++——自己实现一个String类

C++——自己实现一个String类

作者: StevenHD | 来源:发表于2020-10-28 00:54 被阅读0次
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    // #ifndef STRING_H
    // #define STRING_H
    // #endif // STRING_H
    
    class String
    {
    public:
    
        // String();
        String(const char *s = NULL);
        char * c_str();
        ~String();
    
    private:
        char *_str;
    };
    
    // String::String()
    // {
    //     _str = new char[1];
    //     *_str = '\0';
    // }
    
    String::String(const char *s)
    {
        if (s == NULL)
        {
            _str = new char[1];
            *_str = '\0';
        }
        else
        {
            int len = strlen(s);
            _str = new char[len + 1];
            strcpy(_str, s);
        }
    }
    
    char * String::c_str()
    {
        return _str;
    }
    
    String::~String()
    {
        delete []_str;
    }
    
    
    int main()
    {
        string s1;              // char * _str = "";
        string s2("abcdefg");   // char * str = "abcdefg";
        
        cout << s1.c_str() << endl;
        cout << s2.c_str() << endl;
        
        /////////////////////////////////////////////////////
        
        String ms1;
        String ms2("China");
        
        cout << ms1.c_str() << endl;
        cout << ms2.c_str() << endl;
        
        /////////////////////////////////////////////////////
        
        string *ps = new string("haha");
        cout << (*ps).c_str() << endl;
        delete ps;
        
        String *pms = new String("heihei");
        cout << (*pms).c_str() << endl;
        delete pms;
        
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:C++——自己实现一个String类

          本文链接:https://www.haomeiwen.com/subject/bdofvktx.html