C++自我封装一个字符串(MString)

用封装了一个字符串用以学习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望指正 如需源码请转至资源中心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pointer=NULL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值