用封装了一个字符串用以学习C++,目前实现了一些功能具体如下:
class MString
{
public:
friend std::ostream& operator<<(std::ostream &cout, MString &str);
friend std::istream& operator>>(std::istream &cin, MString &str);
char& operator[](int value);
MString operator+(const MString &str);
MString operator+(const char* str);
MString& operator=(const MString &str);
MString& operator=(const char *str);
bool operator==(const MString &str);
bool operator==(const char*str);
bool operator != (const MString &str);
bool operator != (const char*str);
MString* operator ->();
public:
MString();
MString(const char *str);
MString(const MString &str);
MString(int length, const char *str);
MString(int length, const MString &str);
char at(int value);
int length();
void append(const char *str);
void append(const MString str);
void insert(int value, const char*str);
void insert(int value, const MString*str);
bool clear();
bool remove(int value);
bool remove(int begin, int end);
MString getString(int value);
MString getString(int begin, int end);
char begin();
char end();
bool isNull();
bool isEmpty();
MString arg(MString str);
char* toString();
bool toMstring(std::string str);
int findChar(char str);
~MString();
private:
char *m_string;
int m_length;
};
MString注释
运算符重载:
public:
friend std::ostream& operator<<(std::ostream &cout, MString &str);
friend std::istream& operator>>(std::istream &cin, MString &str);
注意输入字符不能超过1024个字符
char& operator[](int value);
MString operator+(const MString &str);
MString operator+(const char* str);
MString& operator=(const MString &str);
MString& operator=(const char *str);
bool operator==(const MString &str);
bool operator==(const char*str);
bool operator != (const MString &str);
bool operator != (const char*str);
MString* operator ->();
方法:
public:
MString();
MString(const char *str);
MString(const MString &str);
MString(int length, const char *str);
MString(int length, const MString &str);
char at(int value);
不能用于修改只能返回字符
int length();
void append(const char *str);
void append(const MString str);
void insert(int value, const char*str);
void insert(int value, const MString*str);
bool clear();
释放对象所维护的char*但不释放对象
bool remove(int value);
移除从value开始包括value
bool remove(int begin, int end);
MString getString(int value);
从value起包括value后的所以字符串
MString getString(int begin, int end);
char begin();
char end();
返回最后一个字符(\0)之前
bool isNull();
判断维护的char*是否存在
bool isEmpty();
判断char*存储的字符是否全为空格
MString arg(MString str);
类似QStrin arg函数通过 %_ 处理字符串
例:MString str=MString(“ Hello World %_ ”).arg(“C++”);
Cout<<str;为Hello World C++
char* toString();
转为C++的string
bool toMstring(std::string str);
<font color=#DC143C>将C++ string 转为MString
int findChar(char str);
以上就是MString目前的基本功能虽然经过测试,但依旧可能存在些许bug望指正 如需源码请转至资源中心