一、作业
代码:
#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;
}
运行结果:
二、思维导图