数据结构之-字符串重载函数的实现

这篇博客详细介绍了如何在C++中实现自定义字符串类AString,包括头文件AString.h的声明和源文件AString.cpp的实现,讨论了字符串相关的重载函数。
摘要由CSDN通过智能技术生成

1、AString.h文件

#pragma once
#include<iostream>
const int defaultSize = 128;
class AString {
	//对象-一个或者多个字符的一个有限序列
public:
	//构造函数,构造一个最大长度为sz的字符串
	AString(int sz = defaultSize);
	//构造函数,由一个已有的字符串构造一个新的字符串
	AString(const char* init);
	//复制构造函数,有一个已有的字符串对象obj构造一个新的对象
	AString(const AString& obj);
	//析构函数,释放内存
	~AString();
	//获取字符串的长度
	int Length()const;
	//()重载,用于获取一个子字符串,从下标beg开始,到ends结束
	AString operator()(const int beg, const int len);
	//==重载判断字符串是否相等
	bool operator == (const AString& obj);
	//!=重载,判断两个字符串是否不等
	bool operator != (const AString & obj);
	//!重载,判断字符串是否为空
	bool operator ! ()const;
	//赋值运算符的重载
	AString& operator = (const AString& obj);
	//+= 运算符的重载
	AString& operator += (const AString &obj);
	//获取*this的第i个字符
	char& operator [] (const int pos)const;
	//输入函数重载
	friend std::istream& operator >>(std::istream& in, AString& obj);
	//输出函数重载
	friend std::ostream& operator <<(std::ostream& out, const AString& obj);
	//若串obj与*this中的子字符串匹配,则返回子字符串的位置,否则返回-1
	int Find(const AString& obj);
private:
	char* m_ch;        //串存放数组
	int m_nCurLength;  //串的实际长度
	int m_nMaxSize;    //串的最大长度
};

2、AString.cpp文件

#include"AString.h"
#include<iostream>
//构造函数,构造一个最大长度为sz的字符串
AString::AString(int sz /*= defaultSize*/) {
	m_nMaxSize = sz;                        //最大长度赋值
	m_ch = new char[m_nMaxSize + 1];        //分配内存,加1是为了添加一个字符串结束符
	if (m_ch == nullptr) {
		std::cout << "内存分配错误&
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值