自定义string类

C++自定义String类实现 通过自定义String类,我们可以实现对字符串的存储、拷贝、连接和比较等基本操作。这个简单的String类只是一个示例,实际的String类可能会更加复杂,包含更多的功能和优化。然而,这个例子提供了一个C++自定义String类实现在C++编程中,String(字符串)是一种常见的数据类型。C++标准库提供了类来处理字符串,但是我们也可以自定义一个String类来实现类似的功能。在本文中,我将向你展示如何自定义一个简单的String类,并提供相应的源代码。 阅读详情
#include <iostream>
#include <cstring>
using namespace std;
class MyString
{
    public:
	    MyString(const char *pData = NULL);
	    MyString(const MyString &str);
	    MyString& operator = (const MyString &str);
	    void Show(){cout << "size:" <<size << " " << data << endl;}
	    ~MyString(){delete []data; data = NULL;}
	private:
		char *data;
		int size;
};
MyString::MyString(const char *pData)
{
	if(pData == NULL)
	{
		data = new char[1];
		*data = '\0';
		size = 0;
	}
	else
	{
		size = strlen(pData);
		data = new char[size+1];
		strcpy(data,pData);
	}
}
MyString::MyString(const MyString &str)
{
	size = str.size;
	data = new char[size+1];
	strcpy(data,str.data);
}
MyString& MyString::operator = (const MyString &str)
{
	if(this == &str)
	    return *this;
	    
	delete []data;
	data = NULL;
	size = str.size;
	data = new char[size+1];
	strcpy(data,str.data);
	
	return *this;
}
int main()
{
	MyString s1;
	char *p = "abcd";
	MyString s2(p);
	s1.Show();
	s1 = s2;
	s1.Show();
}

自定义string类的实现 C++的一般编译器都定义和封装了字符串功能,模仿定义string类的实现,可以实现并支持如下功能: (1)赋值(2)拷贝构造 (3)重载“=” (4)m.legnth() 函数测量字符串的长度 (5)m.cat(string const &)连接字符串 立即下载

相关推荐

MOOS-ivp 实验三 MOOS简介(3)

MOOS-ivp 实验三 MOOS简介(3) 继上一篇文章继续对实验进行记录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录MOOS-ivp 实验三 MOOS简介(3)六、A Simple Example with pXRelay1.pXRelay基本使用2.pXRelay简单例子3.pXRelay实验七、First Experiments in Modifying MOOS App Code1.下载一个MOOS模板文件2.打开MOOS模板文件总结 六、A Simple E

weixin_44151170的博客 2534

Java学习day17-自定义类String

17一.String类二.代码展示三.总结一.String类截取字符串二.代码展示三.总结 一.String类 二.代码展示 三.总结 一.String类 1、String表示字符串类型,属于 引用数据类型,不属于基本数据类型。 2、在java中随便使用 双引号括起来 的都是String对象。 例如:“abc”,“def”,“hello world!”,这是3个String对象。 3、java中规定,双引号括起来的字符串,是 不可变 的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd",也不

weixin_53622982的博客 1593

如何使用obspy下载地震波形数据

如果你是地震研究学者,或者需要进行地震方面的研究,那么地震数据下载是一个必不可少的流程,本文将告诉你如何使用obspy下载想要的地震数据

monsterk1的博客 2074

编写一个自定义的String类

一、简介        C++标准库中包含一个string类,提供了一套封装好的数据以及处理这些数据的函数。为了熟悉这个类的内存管理情况,实现一下自定义的String类,涉及构造函数、复制构造函数、析构函数、重载运算符的操作,主要关注其内部指针的内存的重分配。 二、详解 1、代码实现: (1)代码String.h: #include using namespace std;

乌托邦 9478

缺陷检测-金属表面缺陷检测

1介绍 缺陷检测是工业视觉技术中最重要的组成部分。业务广泛,场景丰富,技术难点高、工作量大。针对不同的场景,选择不同的相机和

huneng1991的专栏 5248

告别Keil!用VSCode+PlatformIO玩转STC单片机(附自动下载配置)

本文详细介绍了如何从Keil迁移到VSCode+PlatformIO进行STC单片机开发,包括环境搭建、自动下载配置等实用技巧。通过对比传统IDE与现代工具链的差异,展示了VSCode+PlatformIO在代码编辑体验、跨平台支持和开发效率上的优势,帮助开发者实现更流畅的STC单片机开发流程。

weixin_27252001的博客 457

【数据结构与算法】String 的简单实现

一直以来 String 都是 C++ 里最常被使用到的数据结构,今天有必要熟悉一下其实现。这里学习并小记之。 此处我只会实现其最基础的几个函数,异常,线程安全等细节也都未考虑。写完发现还是用到了 #include 头文件,有点囧 具体实现参考自:http://noalgo.info/382.html(C++中String类的实现) 代码如下,并附有注释: #include #inc

mick_seu的博客 1251

QtQuick QML教程(2):qml语法介绍

​ qml一个普通的文本文件,后缀是.qml, 一个qml文件主要由两部分组成:(1) import语句 :这个就像C++中的头文件, 使用 import 导入qml需要的相关模块,可以查询Qt文档进行导入,注意每个版本的Qt模块声明可能都不同,相比于QWidget项目,QtQuick的变动是很大的;(2) QML对象树 :根对象是Window, 然后可以在Window中添加各种控件,例如按钮,文本,菜单等。

琅嬛福地 551

C++实现自定义string类

在一些C++笔试题里,会有这样一道题,那就是让你自己实现一个简单的string类。自己在面试的时候就遇到过这个题。在这里说一下自己是怎么做的。

qq_42166079的博客 880

Mamba SSM 实战:IMDb 文本分类 + Mamba-ssm 全流程

Mamba SSM 文本分类链路:IMDb 二分类 → MambaLMHeadModel (d_model=256, n_layer=8, d_state=16, exp2=2) → 末 token 分类头。5 epoch 达 89.2% 准确率 (与 BERT-base 持平), 但显存降低 44% (3.5GB vs 6.2GB)。建议序列长度 ≥ 1024 再选 Mamba, 短序列 (< 512) 用 BERT 更高效。扩展时注意d_state。

m0_71589036的博客 57

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 386

自定义的String类

一、简介       C++标准库中包含一个string类,提供了一套封装好的数据以及处理这些数据的函数。为了熟悉这个类的内存管理情况,实现一下自定义的String类,涉及构造函数、复制构造函数、析构函数、重载运算符的操作,主要关注其内部指针的内存的重分配。二、详解1、代码实现:(1)代码String.h:[html] view plain copy#include &lt;iostream&gt...

破茧而出 5048

2026华为OD机试真题 9月27日 新系统 【均衡调度】

华为OD机试真题 新系统 9月27号【均衡调度】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【均衡调度】多语言题解。

qq_45776114的博客 1763

能否自定义一个String类使用

可以自定义包名不为java.lang的String类,并区别包名正常使用自定义包名为java.lang的String类String类下写main方法:由于双亲委派模型,在加载String类时,会最终委派给Bootstrap ClassLoader去加载,加载的是rt.jar包中的那个java.lang.String,而rt.jar包中的String类是没有main方法的,因此报错误。

2501_92589102的博客 358

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

自定义String类

自定义String类Drop新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 Drop 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了

Chinanjing的博客 927

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

c++自定义String类

String.h头文件: using namespace std; class String{ public: //默认构造函数 String(); //带参构造函数 String(const char *str); //析构函数 ~String(); //拷贝构造 String(const String &obj);

任海丽(3G/移动开发) 7752

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

自定义一个String类

可以自定义包名不为java.lang的String类,并区别包名正常使用自定义包名为java.lang的String类String类下写main方法:由于双亲委派模型,在加载String类时,会最终委派给Bootstrap ClassLoader去加载,加载的是rt.jar包中的那个java.lang.String,而rt.jar包中的String类是没有main方法的,因此报错误。

Seven的博客 508

C++自定义string类

为提高自身编码能力,学习书写自定义string类。

起风了~ 366

java 自定义实现一个string类

自定义实现一个String类 概述 在Java中,String是一个非常常用的类,但是我们也可以自定义实现一个类似String的类。在这篇文章中,我将指导你如何实现一个简单的String类,并展示整个过程的步骤和每个步骤所需的代码。 流程 首先,我们来看一下整个实现自定义String类的流程: pie title ...

weixin_40968924的博客 202

C++ 自定义String类

C++ 自定义String类 思考 类的声明 _CompareLength _SetString _MoveString _UnSafeMoveString 构造函数和析构函数 重载 = 操作符 重载+=操作符 重载+操作符 重载中括号 重载==操作符 重载输入输出流 完整代码 想要实现高级的 String 类还挺复杂的,C++ 和 C# 不一样,许多模块都需要自己来解决内存问题,并且如何提高内存空间的利用效率,调用函数是否触发拷贝构造函数,触发拷贝构造函数时又该如何避免重复的内存释放。

云帝的博客 3610

C++自定义String类的实现

C++比较经典的题,自定义string的实现 直接上代码 myString.h #include <cstring> using namespace std; class myString { private: char *str; public: myString(); //构造函数 mystring s myString(const char *...

qq_39049179的博客 1630

面试官问:可以自定义String类吗?麻了~

你好,我是田哥故事:昨天一位朋友在面试中被问到:如果我自定义个String类行不行?你是否知道可不可以?如果回答说不可以,那面试官可能会问为什么不可以?下面我给你整个案例试试看:packagejava.lang; /** *{@code@description:}TODO * *@authortianwc 公众号:Java后端技术全栈 *在线刷题 1200+java面试题和1...

田维常 1153
上一篇: 数组循环移位
下一篇: 进程和线程
fighter_lp
博客等级 码龄14年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值