1.拷贝构造
2.析构函数
3.判空函数
4.size函数
5.c_str函数
6.at函数
#include <iostream>
#include <string.h>
using namespace std;
class myString
{
char *str; //记录字符串指针
int size; //记录字符串长度
public:
//无参构造
myString() :size(10)
{
str = new char[size];
strcpy(str,"");
}
//有参构造
myString(const char *s)
{
size = strlen(s);
str = new char[size+1];
strcpy(str,s);
str[size +1] = '\0';
}
//析构函数
~myString()
{
delete str;
}
//拷贝构造
myString(myString &other)
{
this->size = other.size;
this->str = new char[this->size+1];
strcpy(this->str,other.str);
this->str[size +1] = '\0';
}
//求字符串长度
int mysize()
{
return size;
}
//判空
bool myempty()
{
return size==0?true:false;
}
//将c++风格字符串转化为c风格 c_str
char *myc_str()
{
return str;
}
char myat(int pos)
{
char *p = str+pos;
return *p;
}
void show()
{
cout << str <<endl;
}
};
int main()
{
myString s1("hello world");
s1.show();
cout << "s1是否为空:" << s1.myempty() << endl;
cout << "s1的字符串长度:" << s1.mysize() << endl;
cout << s1.myat(0) << endl;
char s[128] = "";
strcpy(s, s1.myc_str());
cout << s << endl;
cout << "*******************************" << endl;
myString s2;
s2.show();
cout << "s2是否为空:" << s2.myempty() << endl;
cout << "s2的字符串长度:" << s2.mysize() << endl;
cout << "*******************************" << endl;
return 0;
}