c++day3

编写myString类

#include <iostream>
#include <cstring>
using namespace std;
class myString
{
    private:
        char *str;          //记录c风格的字符串
        int size;            //记录字符串的实际长度
    public:
        //无参构造
        myString():size(10)
        {
            str = new char[size];         //构造出一个长度为10的字符串
            strcpy(str,"");
        }
        //有参构造
        myString(const char *s)
        {
             size = strlen(s);
             str = new char[size+1];
             strcpy(str,s);
        }
        //拷贝构造
        myString(const myString &other)
        {
            int len=strlen(other.str);
            str=new char[len+1];
            strcpy(this->str,other.str);
        }
        //析构函数
        ~myString()
        {
            delete str;
            str=nullptr;
        }
        //判空函数
        bool myempty()
        {
            return strlen(str)==0?1:0;
        }
        //size函数
        int mysize()
        {
            return strlen(str);
        }
        //c_str函数
        const char* myc_str()
        {
            return str;
        }
        //at函数
        char &myat(int pos)
        {
            return *(str+pos);
        }
        void myshow()
        {
            cout<<str<<endl;
        }
};

int main()
{
    myString s1("blackpink");
    cout<<"有参构造:"<<endl;
    s1.myshow();
    myString s2=s1;
    cout<<"拷贝构造:"<<endl;
    s2.myshow();
    cout<<"判空函数:"<<endl;
    cout<<s1.myempty()<<endl;
    cout<<"size函数:"<<endl;
    cout<<s1.mysize()<<endl;
    cout<<"c_str函数:"<<endl;
    cout<<s1.myc_str()<<endl;
    cout<<"at函数:"<<endl;
    cout<<s1.myat(4)<<endl;
    return 0;
}

相关推荐

  1. MSc CDA Take-Home

    2024-03-27 21:56:02       60 阅读
  2. CDA一级备考策略分享

    2024-03-27 21:56:02       32 阅读
  3. CDA-LevelⅡ【考题整理-带答案】

    2024-03-27 21:56:02       50 阅读
  4. Spring Data访问Elasticsearch----CDI集成

    2024-03-27 21:56:02       36 阅读
  5. CDA Level Ⅰ 2023认证考试大纲

    2024-03-27 21:56:02       78 阅读
  6. web server apache tomcat11-33-CDI

    2024-03-27 21:56:02       33 阅读
  7. Spring Data访问 MongoDB(十六)----CDI集成

    2024-03-27 21:56:02       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 21:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 21:56:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 21:56:02       82 阅读
  4. Python语言-面向对象

    2024-03-27 21:56:02       91 阅读

热门阅读

  1. 【生成对抗网络GAN】一篇文章讲透~

    2024-03-27 21:56:02       41 阅读
  2. 我与CSDN的故事(一)

    2024-03-27 21:56:02       38 阅读
  3. 第 1 章 信息化和信息系统 -2

    2024-03-27 21:56:02       44 阅读
  4. 1.7.2 python练习题15道

    2024-03-27 21:56:02       30 阅读
  5. MySQL高阶语句

    2024-03-27 21:56:02       31 阅读
  6. 基于STM32的个人健康助手的设计与实现

    2024-03-27 21:56:02       41 阅读
  7. 线程池

    2024-03-27 21:56:02       37 阅读