#include <iostream>
#include <cstring>
using namespace std;
class mystring
{
private:
char *str;//字符串
int size;//字符串长度
public:
//无参构造
mystring():size(10)
{
str = new char[size];
cout<<"无参函数"<<endl;
}
//有参构造
mystring(const char *s)
{
size = strlen(s);
str =new char[size+1];
strcpy(str,s);
cout<<"有参构造"<<endl;
}
//拷贝构造
mystring(const mystring & other)
{
size = other.size;
str = new char[size+1];
strcpy(str,other.str);
cout<<"拷贝构造"<<endl;
}
//析构函数
~mystring()
{
delete str;
cout<<"析构函数"<<endl;
}
//判空函数
bool empty()
{
if(strlen(str) == 0)
{
return true;
}
else
{
return false;
}
}
//展示
void show()
{
cout<<"str="<<str<<endl;
}
//size函数
int len()
{
return size;
}
//c_str函数
const char* c_str()
{
return str;
}
//at函数
char at(int k)
{
return str[k];
}
};
int main()
{
mystring s("5472");//有参构造函数
bool t =s.empty();//判空函数
cout<<"t="<<boolalpha<<t<<endl;
// 拷贝构造
mystring s1(s);
s1.show();
//字符串长度
cout<<"s1.len()="<<s1.len()<<endl;
//c++转c
cout<<"s1.c_str()"<<s1.c_str()<<endl;
//定位
cout<<"s1.at(2)"<<s1.at(2)<<endl;
return 0;
}
仿照string完成myString类
最新推荐文章于 2024-10-08 00:02:21 发布
文章定义了一个名为mystring的类,用于实现基本的字符串操作,包括无参构造、有参构造、拷贝构造、析构函数以及判空、展示、获取长度、获取C风格字符串和字符定位等方法。在主函数中,展示了如何实例化mystring对象并调用这些方法。
摘要由CSDN通过智能技术生成