一、作业
代码:
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
class Mystring
{
public://无参构造Mystring():size(10){str = new char[size];cout<<"无参构造完成"<<endl;}//有参构造Mystring(const char *s):size(10){this->str = new char[size];//判空if(empty()==0){str==NULL;}//判扩容if(size <= strlen(s)){int n = strlen(s)/size;expansion(n);}strcpy(str,s);cout<<"有参构造完成"<<endl;}//析构函数~Mystring(){delete str; //释放指针的空间cout<<"Mystring析构函数"<<endl;}//判空函数bool empty(){if(str==NULL){return true;}return false;}//size函数int mysize(){return strlen(str);}//c_str函数string c_str(){return str;}//at函数char at(int n){return str[n];}//扩容void expansion(int n){size = n*size;cout<<"扩容完成"<<endl;}
private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度
};int main()
{char ptr[] = " ";cin>>ptr;Mystring s1(ptr);cout<<s1.mysize()<<endl;cout<<s1.c_str()<<endl;cout<<s1.at(1)<<endl;return 0;
}
运行结果:

二、思维导图


