本文主要是介绍仿照string类,实现myString,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <iostream>
#include<cstring>
using namespace std;
//仿照string完成mystring类
class mystring
{
private:char *str; //记录c风格的字符串int size; // 记录字符串的实际长度
public://无参构造mystring():size(10){str=new char[size];}//有参构造mystring(const char *s){size=strlen(s);str=new char[size+1];strcpy(str,s);}bool empty();int mysize();char* myc_str();//将c++风格的字符串转换成c语言风格的字符串char &at(int index);void show();//二倍扩容void expend();//析构函数~mystring(){delete [] str;}
};//判空函数
bool mystring::empty()
{return size==0;
}
int mystring::mysize()
{return size;
}
char* mystring::myc_str()
{return str;
}
char &mystring::at(int index)
{if(index<0||index>=size){cout<<"index error"<<endl;}return str[index];
}
void mystring::show()
{for(int i=0;i<size;i++){cout<<str[i]<<" ";}cout<<endl;
}
void mystring::expend()
{char *temp = new char[size*2];strcpy(temp,str);delete []str;str = temp;size = size*2;
}int main()
{mystring zf1("hello a");cout<<zf1.mysize()<<endl;cout<<zf1.at(3)<<endl;zf1.show();if(zf1.empty()){cout<<"字符串非空"<<endl;}else {cout<<"字符串不为空"<<endl;}return 0;
}
思维导图
这篇关于仿照string类,实现myString的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!