string class 实现

来源:百度知道 编辑:UC知道 时间:2024/06/22 11:25:11
C++本提供了string class. 但题目要求是不使用它。而是自己创建一个新的类 MyStirng.
要求实现以下函数:
MyString()
MyString(char * chars)
MyString(char chars[], int size)
MyString append(MyString s, int index, int n)
MyString assign(MyString s, int index, int n)
bool empty()
int length()
void copy(char s[], int index, int n)
void swap(MyString s)
int find(char ch)

好像append, assign, swap的参数有问题,应该是引用,不然s会被析构。

替你写了一个你测试一下,

class MyString
{
char *m_str;
int m_size;
public:
MyString(void)
{
m_str = NULL;
m_size = 0;
}

MyString(char * chars)
{
int size = strlen(chars);
m_str = new char[size+1];
for (int i = 0; i < size; i++)
{
m_str[i] = chars[i];
}
// End of string
m_str[size] = '\0';

m_size = size;
}

MyString(char chars[], int size)
{
m_str = new char[size + 1];
for (int i = 0; i < size; i++)
{
m_str[i] = chars[i];
}
// End of string
m_str[size] = '\0';

m_size = size;
}

virtual ~MyString(void)
{
if (m_str != NULL)
{
delete m_str;
m_str = NULL;
}
}

MyString append(MyString& s, int index, int