【实验5】c++MyString类实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ccnu_hupo_cpp_class_tst6exercise2_by:lele_2013_10_30

new不忘delete

Design the string class in the C++ library by providing your own implementation for the following functions (name your class MyString):

MyString();//构造

MyString(const char* cString);//地址不能变

char at(int index) const;//输入数组下标,返回字符

int length() const;//长度

void clear();//清空len=0

bool empty() const;//是否清空?len不变

int compare(const MyString& s) const;//

int compare(int index, int n, const MyString& s) const;

void copy(char s[], int index, int n);

char* data() const;

int find(char ch) const;

int find(char ch, int index) const;

int find(const MyString& s, int index) const;

*/

#include

#include

using namespace std;

class MyString

{

public:

MyString();

MyString(const char* cString);

char at(int index) const;//

int length() const;

void clear();

bool empty() const;

int compare(const MyString& s) const;

int compare(int index, int n, const MyString& s) const;

void copy(char s[], int index, int n);

char* data() const;

int find(char ch) const;

int find(char ch, int index) const;

int find(const MyString& s, int index) const;

~MyString()

cout<<"delete..."<

delete []a;

}

private:

char *a;

int len;

};

MyString::MyString(const char* cString)

{

if (cString==NULL)

{

a=new char[1];

a[0]=0;

int len=0;

}

else

{

a=new char [strlen(cString)+1];

strcpy(a,cString);

len=strlen(cString);

}

}

char MyString::at(int index) const

{

if(len==0)

{cout<<"no char in string"<

return 0;

}

if(index>len)

{

cout<<"the maximun array exceed"<

return 0 ;

}

else

{

return a[index-1];

}

}

int MyString::length() const

return len;

}

void MyString::clear()

{

if(!a)

{

delete []a;

a=NULL;

}

len=0;

//a=" ";

}

bool MyString::empty() const

{

if(len==0)

return true;

else

return false;

}

int MyString::compare(const MyString& s) const

{

int m=this->len;int n=s.len;

for(int i=0;i

{

if(s.a[i]==a[i])

continue;

else if(s.a[i]

return 1;

else

return -1;

}

return 0;

}

int MyString::compare(int index, int n, const MyString& s) const {

int m=len,k=s.len;

相关文档
最新文档