【C++】将myString类中能够实现的操作都实现一遍

myString.h

#ifndef MYSTERAM_H
#define MYSTERAM_H
#include <iostream>
#include<cstring>
using namespace std;
class myString
{
private:char *str;  //字符串int size;   //字符串容量char error[20] = "error";
public://无参构造myString():size(10){size = 10;str = new  char[size]();}//有参构造myString(const char *s){size = strlen(s);    //计算传入的字符串长度str = new char[size];//创建空间为strlen(s)的空间strcpy(str,s);       //拷贝形参给实参}//析构函数~myString(){delete []str;}//为字符串赋值myString operator=(char *s);//访问指定字符,有边界检查char &at(int index);//访问指定字符char &operator[](int index)const;//返回指向字符串首字符的指针char *data()const;//返回字符串不可修改的C字符数组版本char c_str()const;//检查字符串是否为空bool empty();//返回字符数int mysize();//返回字符数int length();//返回当前对象分配的存储空间能保存的字符数量int capacity();//清空内容void clear();//后附字符到结尾bool push_back(char s);//移除末尾字符bool pop_back();//后附字符到结尾bool append(const char s);//后附字符到结尾myString &operator+=(const char s);//连接两个字符串或者一个字符串和一个字符myString &operator+(const char *s);//判断两个字符串是否相等bool operator==(const char *s);//判断两个字符串!=bool operator!=(const char *s);//判断两个字符串<bool operator<(const char *s);//判断两个字符串>bool operator>(char *s);//判断两个字符串<=bool operator<=(const char *s);//判断两个字符串>=bool operator>=(const char *s);//展示void show();friend ostream & operator<<(ostream &L,const myString &s);friend istream & operator>>(istream &in, myString &s);};
//执行字符串的流输入
ostream & operator<<(ostream &L,const myString &s);//执行字符串的流输出
istream & operator>>(istream &in, myString &s);#endif // MYSTERAM_H

myString.cpp

#ifndef MYSTERAM_H
#define MYSTERAM_H
#include <iostream>
#include<cstring>
using namespace std;
class myString
{
private:char *str;  //字符串int size;   //字符串容量char error[20] = "error";
public://无参构造myString():size(10){size = 10;str = new  char[size]();}//有参构造myString(const char *s){size = strlen(s);    //计算传入的字符串长度str = new char[size];//创建空间为strlen(s)的空间strcpy(str,s);       //拷贝形参给实参}//析构函数~myString(){delete []str;}//为字符串赋值myString operator=(char *s);//访问指定字符,有边界检查char &at(int index);//访问指定字符char &operator[](int index)const;//返回指向字符串首字符的指针char *data()const;//返回字符串不可修改的C字符数组版本char c_str()const;//检查字符串是否为空bool empty();//返回字符数int mysize();//返回字符数int length();//返回当前对象分配的存储空间能保存的字符数量int capacity();//清空内容void clear();//后附字符到结尾bool push_back(char s);//移除末尾字符bool pop_back();//后附字符到结尾bool append(const char s);//后附字符到结尾myString &operator+=(const char s);//连接两个字符串或者一个字符串和一个字符myString &operator+(const char *s);//判断两个字符串是否相等bool operator==(const char *s);//判断两个字符串!=bool operator!=(const char *s);//判断两个字符串<bool operator<(const char *s);//判断两个字符串>bool operator>(char *s);//判断两个字符串<=bool operator<=(const char *s);//判断两个字符串>=bool operator>=(const char *s);//展示void show();friend ostream & operator<<(ostream &L,const myString &s);friend istream & operator>>(istream &in, myString &s);};
//执行字符串的流输入
ostream & operator<<(ostream &L,const myString &s);//执行字符串的流输出
istream & operator>>(istream &in, myString &s);#endif // MYSTERAM_H

main.cpp

#include <mySteram.h>int main()
{myString s;//无参构造cout<<"字符串长度"<<s.length()<<endl;cout<<"字符串长度"<<s.mysize()<<endl;cout<<"开辟空间大小"<<s.capacity()<<endl;cout<<"*****************************************"<<endl;myString ss("zhenxinye");//有参构造ss.show();cout<<ss.length()<<endl;cout<<ss.mysize()<<endl;cout<<"开辟空间大小"<<ss.capacity()<<endl;cout<<"*****************************************"<<endl;cout<<"结尾加上字符 a ";ss.append('a');ss.show();cout<<"*****************************************"<<endl;cout<<"结尾加上字符 a ";ss.append('a');ss.show();cout<<"*****************************************"<<endl;cout<<"结尾加上字符 b ";ss+='b';ss.show();cout<<"*****************************************"<<endl;cout<<"删除最后一个字符:";ss.pop_back();ss.show();cout<<"*****************************************"<<endl;cout<<"拼接字符串 hello world:";ss = ss+" hello world";ss.show();cout<<"*****************************************"<<endl;cout<<"ss == zhenxinyeaa hello world?"<<endl;ss == "zhenxinyeaa hello world";cout<<"*****************************************"<<endl;cout<<"cout<<ss "<<ss;cout<<"*****************************************"<<endl;cout<<"cin>>ss "<<endl;cin>>ss;cout<<"--------"<<endl;ss.show();return 0;
}

效果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415133.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析FPGA在SOC设计中的核心作用

在集成系统SoC设计中&#xff0c;CPU核心的嵌入至关重要&#xff0c;以实现软硬件的有效交互。此过程中涉及到功能IP&#xff08;如图像处理、无线通信等&#xff09;的验证和整合&#xff0c;利用硬件描述语言(HDL)来实现可编程逻辑(FPGA)&#xff0c;并通过验证技术提高设计效…

Django Admin对自定义的计算字段进行排序

通常&#xff0c;Django会为模型属性字段&#xff0c;自动添加排序功能。当你添加计算字段时&#xff0c;Django不知道如何执行order_by&#xff0c;因此它不会在该字段上添加排序功能。 如果要在计算字段上添加排序&#xff0c;则必须告诉Django需要排序的内容。你可以通过在…

【机器学习】神经网络、隐藏层的基本概念、如何选择隐藏层数量以及胶囊网络对神经网络的影响

引言 神经网络是机器学习的一种方法&#xff0c;它通过模拟人脑神经元的工作原理来构建算法 文章目录 引言一、神经网络1.1 定义1.2 主要组成部分1.3 工作原理1.4 应用1.5 类型1.6 优化算法1.7 总结 二、隐藏层2.1 定义2.2 隐藏层的作用2.3 隐藏层的数量和大小2.4 隐藏层的结构…

单片机-STM32 时钟(六)

1.时钟的概念 在我们单片机中&#xff0c;时钟主要是用于 提供一个工作的频率&#xff0c;时钟信号越大&#xff0c;设备执行的速度就越快。 时钟---处理器运行的频率---72MHZ Dbus--数据总线 AHB--总线桥 APB2--外设总线2&#xff08;时钟&#xff09; APB1--外设总线1&a…

基于Java+SpringBoot+Vue的植物健康系统

基于JavaSpringBootVue的植物健康系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345; 某信 gzh 搜索【智能编程小助手】获取项…

[C++11#44](一) 统一的列表初始化 | 声明 | STL中一些变化 | emplace的优化 | move

目录 0. 回忆 1.隐式类型转化 特性 1.统一的列表初始化 1.{}初始化 2.2 std::initializer_list 二、声明 1.auto 2.decltype 3.nullptr 宏定义的例子 使用 const 和 enum 替代宏 4. 范围 for 循环 5.final与override final 关键字 override 关键字 示例代码 智…

wpf prism 《3》 弹窗 IOC

传统的弹窗 这种耦合度高 new 窗体() . Show(); new 窗体() . ShowDialog(); 利用Prism 自动的 IOC 弹窗的 必须 必须 必须 页面控件 弹窗的 必须 必须 必须 页面控件 弹窗的 必须 必须 必须 页面控件 弹窗的 必须 必须 必须 页面控件 弹窗的 必须 必须 必须 页面控件 》》否…

惠中科技光伏清洗剂:绿色清洁,引领光伏行业新潮流

在当今全球能源转型的大潮中&#xff0c;光伏产业作为绿色能源的重要组成部分&#xff0c;正以前所未有的速度蓬勃发展。然而&#xff0c;随着光伏板在户外环境的长时间暴露&#xff0c;其表面不可避免地会积累灰尘、鸟粪、油污等污染物&#xff0c;严重影响光伏板的透光率和发…

tiny_qemu模拟qemu虚拟化原理

一、模仿一个x86平台虚机 cpu虚拟化原理来源于Linux虚拟化KVM-Qemu分析&#xff08;四&#xff09;之CPU虚拟化&#xff08;2&#xff09; 笔者就实现了下相关操作。看汇编是在x86平台下操作的&#xff0c;其中两个文件分别是 1.tiny_kernel.S start: /* Hello */ mov …

数据安全与个人信息保护的辨析

文章目录 前言一、合规1、合规的目标导向原则2、监管平衡的原则二、基础设施1、公共基础设施2、企业基础设施三、数据流通1、数据生产要素是数字化时代生产要素的变革理论2、数据产品的保护源自于数据产品的价值四、产品与服务1、数据安全与网络安全2、数据安全的分类分级与数据…

Unity(2022.3.41LTS) - UI详细介绍-Scrollbar(滚动条)

目录 零.简介 一、基本功能与用途 二、组件介绍 三、使用方法 四、优化和注意事项 五.和滑动条的区别 零.简介 在 Unity 中&#xff0c;滚动条&#xff08;Scrollbar&#xff09;是一种用于实现滚动功能的 UI 组件。 一、基本功能与用途 滚动内容&#xff1a;主要用于…

NeRF原理学习

一个2020年的工作我现在才来学习并总结它的原理&#xff0c;颇有种“时过境迁”的感觉。这篇总结是基于NeRF原文 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 阅读理解后写的&#xff0c;作用是以后如果记不太清了可以回忆。 目的&应用 先说…

Java项目:128 基于Spring Boot的装饰工程管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统包含管理员、员工和客户角色 管理员权限操作的功能包括管理合同信息&#xff0c;管理合同报价&#xff0c;管理立项项目&#xff0c;管…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-24 TPG图像测试数据发生器设计

软件版本&#xff1a;VIVADO2021.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台&#xff1a;米联客-MLK-H3-CZ08-7100开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

【python因果推断库3】使用 CausalPy 进行贝叶斯geolift 分析

目录 导入数据 丹麦的销售额是否有地理提升&#xff08;GeoLift&#xff09;&#xff1f; 结果 本笔记本介绍如何使用 CausalPy 的贝叶斯{术语}合成控制功能来评估“地理提升”&#xff08;GeoLift&#xff09;。我们的假设情景如下&#xff1a; 你是一家在欧洲运营的公司的…

图文解析保姆级教程: IDEA里面创建SpringBoot工程、SpringBoot项目的运行和测试、实现浏览器返回字符串

文章目录 一、创建SpringBoot工程&#xff08;需要联网&#xff09;二、 定义请求处理类三、运行测试 此教程摘选自我的笔记&#xff1a;黑马JavaWeb开发笔记13——Springboot入门&#xff08;创建、运行&测试项目&#xff09;、Http协议&#xff08;请求&响应协议&…

Json数据解析报错 -TAB

表现&#xff1a; n8n 解析服务器的数据 报错 json 解析错误 原理&#xff1a; tab键 在代码中为 string tab \t解决办法&#xff1a;tab键替换4个空格 string tab "\t" tab.replaceAll("\t", " ")问题&#xff1a; tab 键 和 空格 在普…

卷积公式的几何学理解

1、Required Knowledge 1.1、概率密度函数 用于描述连续型随机变量在不同取值上的概率密度&#xff0c;记作 f ( x ) f(x) f(x)。 如随机变量 X X X的分布为正态分布&#xff0c;则其概率密度函数为&#xff1a; f ( x ) 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x)\frac{1}…

记忆化搜索【上】

509. 斐波那契数 题目链接&#xff1a;斐波那契数 递归&#xff08;暴搜&#xff09; 斐波那契数列&#xff0c;最传统的解法&#xff0c;采用递归&#xff1a; class Solution { public:int fib(int n){return dfs(n);}int dfs(int n){if(n 0 || n 1)return n;return d…

大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…