⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mystring.h

📁 我自己编写的字符串类
💻 H
字号:
//MyString.h-类定义文件

#ifndef __MYSTRING_H__
#define __MYSTRING_H__

#include <iostream.h>
#include <string.h>

class CMyString
{	
public:
	CMyString();              //无参构造函数
	virtual ~CMyString();     //析构函数
	CMyString(char *str);     //有参构造函数
	CMyString(CMyString &str);//复制构造函数
public:
	char *m_pstr;//字符串头指针
	int m_len;   //字符串的长度
	int m_size;  //字符串的大小,包括'\0'
public:
	const char * Convert(); //const char *转换
	//运算符重载
	CMyString & operator =(char *str);//赋值=重载
	CMyString & operator =(CMyString &str);
	char * operator +(char *str);//加法
	char* operator +(CMyString &str);
	int Compare(char *cmpstr);    //字符串比较函数
	int Compare(CMyString &cmpstr);
	int operator <(char *cmp); //小于
	int operator <(CMyString &cmp);
	int operator >(char *cmp); //大于
	int operator >(CMyString &cmp);
	int operator ==(char *cmp); //等于
	int operator ==(CMyString &cmp);
	char operator [](int i); //下标运算符
};

void main()
{
	cout<<"第五题"<<endl<<endl;
	
	cout<<"带参构造函数实例"<<endl;
	CMyString str1("This is a my class-string!");
	cout<<str1.m_pstr<<endl;
	
	cout<<"复制构造函数实例"<<endl;
	CMyString str2(str1);
	cout<<str2.m_pstr<<endl;

	cout<<"const char *转换"<<endl;
	const char *constchar;
	constchar=str1.Convert();
	cout<<constchar<<endl;

	cout<<"赋值操作"<<endl;
	CMyString str3;	
	str3="overloaded operators:=(char *str)";
	cout<<str3.m_pstr<<endl;
	CMyString str4;	
	str4="overloaded operators:=(CMyString &str)";
	cout<<str4.m_pstr<<endl;

	cout<<"加法操作"<<endl;
	CMyString str5("CMyString");	
	str5=str5+"+char *";
	cout<<str5.m_pstr<<endl;
	CMyString str6("CMyString"),str6_2("+CMyString");	
	str6=str6+str6_2;
	cout<<str6.m_pstr<<endl;

	cout<<"字符串比较"<<endl;
	CMyString str7("string compare");
	int i=(str7=="string compare");
	if(i)
		cout<<i<<"  "<<"两个字符串相等"<<endl;

	cout<<"下标运算符重载"<<endl;
	cout<<str7[2]<<endl;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -