2024年9月2日 C++ 作业 模拟string类函数

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>

using namespace std;

class mysring
{
    public:
        //无参构造函数

        mysring()
        {   str=nullptr;
            len=0;
        }

        //有参构造函数
        mysring(const char *s)
        {
            len=strlen(s);
            str=new char[len];
            strcpy(str,s);
        }

        //有参构造函数
        ~mysring()
        {        //析构函数
            if(str!=nullptr)
            {
                delete []str;
            }
        }

        //返回类中存储字符串
        void data(mysring &s)
        {
            for(int i=0;i<s.len;i++)
            {
                std::cout<<s.str[i];
            }
            printf("\n");

        }

        //
        void lenth(mysring &s)
        {

            len=strlen(s.str);
            std::cout<<"len="<<s.len<<std::endl;

        }


        //检查str是否为空
        void empty(mysring &s)                                     
        {
            if(str==nullptr)
            {
                std::cout<<0<<std::endl;
            }
            else
            {
                std::cout<<1<<std::endl;

            }
        }

        //返回给定下标字符
        void at(mysring &s,int num)
        {
            std::cout<<s.str[num]<<std::endl;
        }
    private:
        int len;
        char *str;
};



int main(int argc, const char *argv[])
{
    mysring s("hello world");
    s.data(s);
    s.lenth(s);
    s.empty(s);
    s.at(s,2);

    return 0;
}
                                                                   
                                                                   
                                                                   
                                                                   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值