#include "mystring.h" #include <string.h>

Mystring::Mystring(const char *str) { if(nullptr == str) { m_data = new char[1]; *m_data = '\0'; }else { m_data = new char[strlen(str) + 1]; strcpy(m_data, str); } }

Mystring::~Mystring() { if(nullptr != m_data) { delete [] m_data; } m_data = nullptr; }

Mystring::Mystring(const Mystring &str) { m_data = new char[strlen(str.m_data) + 1]; strcpy(m_data, str.m_data); }

Mystring& Mystring::operator=(const Mystring &str) { if(this == &str) { return *this; } delete [] m_data; m_data = new char[strlen(str.m_data) + 1]; strcpy(m_data, str.m_data); return *this; }

Mystring Mystring::operator+(const Mystring &str) { Mystring tmp; delete [] tmp.m_data; tmp.m_data = new char[strlen(m_data) + strlen(str.m_data) + 1]; strcpy(tmp.m_data, m_data); // strcat(tmp.m_data, str.m_data); strcpy(tmp.m_data + strlen(m_data), str.m_data); return tmp; }

bool Mystring::operator>(const Mystring &str) { if( strcmp(m_data, str.m_data) > 0 ) { return true; } return false; }

char Mystring::operator[](int index) { return m_data[index]; }

ostream& operator<<(ostream &out, const Mystring &str) { out << str.m_data; return out; }

C++ Mystring 类实现:字符串操作与重载运算符

原文地址: https://www.cveoy.top/t/topic/quIG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录