仿照string类,实现myString
#include <iostream>
#include <cstring>
using namespace std;
class myString
{
public://无参构造myString():size(10){str=new char[size];//堆区创建空间}//有参构造myString(const char *s){size=strlen(s);//获取长度str=new char[size+1];//因为'\0'长度加一strcpy(str,s);//赋值}//析构函数~myString(){delete str;cout<<"myString::析构函数"<<endl;}bool str_empty();//判空int str_size();//返回实际长度char * c_str();//转换c风格char &at(int index);//访问字符串void expand();//二倍扩容
private:char *str;//c风格字符串int size;//字符串大小
};
bool myString::str_empty()
{return strlen(str)==0;//判断字符长度是否为0;
}int myString::str_size()
{return strlen(str);//返回字符串长度
}char * myString::c_str()
{return str;//转换
}char& myString::at(int index)
{return str[index];//访问
}void myString::expand()
{size=size*2;//扩容
}
int main()
{myString s("abcd");cout<<"size= "<<s.str_size()<<" s= "<<s.c_str()<<" s[1]= "<<s.at(1)<<endl;return 0;
}