欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 8.29c++

8.29c++

2025/9/27 10:03:52 来源:https://blog.csdn.net/A111222129/article/details/141687808  浏览:    关键词:8.29c++

仿照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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词