一、在C++语言中可以采用类库中String类进行相应的操作,本文通过手写字符串类的构造函数,析构函数,运算符重载模拟字符串相应的操作。

二、定义MyString.h MyString,和main.cpp来进行模拟测试(编译环境VS2015)

2.1 MyString.h类头文件

#pragma once
#include<iostream>
using namespace std;
class MyString
{
public:MyString();MyString(const char *p);MyString(const MyString& s);~MyString();
private:int     m_len;char      *m_p;
};

2.2  MyString类

#define _CRT_SECURE_NO_WARNINGS
#include "MyString.h"
//构造函数
MyString::MyString()
{m_len = 0;m_p = new char[m_len + 1];strcpy(m_p, "");
}
//含参数的构造函数
MyString::MyString(const char *p)
{if (p==NULL){m_len = 0;m_p = new char[m_len + 1];strcpy(m_p,"");}else{m_len = strlen(p);m_p = new char[m_len + 1];strcpy(m_p,p);}
}
//拷贝构造函数
MyString::MyString(const MyString& s)
{m_len = s.m_len;m_p = new char[m_len + 1];strcpy(m_p,s.m_p);
}MyString::~MyString()
{if (m_p==NULL){delete [] m_p;m_p = NULL;m_len = 0;}
}

2.3 main.cpp(测试函数)

#include<iostream>
#include"MyString.h"
using namespace std;void main()
{MyString s1;MyString s2("12");MyString s3 = s2;system("pause");
}

C语言手写模拟字符串String类相关推荐

  1. C语言手写SDS字符串的实现思路

    C语言手写SDS字符串的实现思路 Simple Dynamic Strings (简称 SDS) 是一个 C 语言封装的的字符串,它增强了 C 语言字符串处理的能力. SDS 的 C 语言实现通常包括 ...

  2. 手写模拟spring扫描底层实现

    手写模拟spring扫描底层实现 前言 1.ApplicationContext和AppConfig 2.@Component和@ComponentScan注解 3.UserService和Test ...

  3. Java学习笔记(六)--字符串String类

    文章目录 字符串 一.String 类 1.1 声明字符串 1.2 创建字符串 二.连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三.获取字符串信息 3.1 获取字符串长度 3.2 字 ...

  4. C语言手写栈、手写计算器

    C语言实现表达式求值 文章结构 C语言手写栈Struct Stack 后缀表达式求值 中缀表达式转后缀表达式 文章结构 本文尝试通过纯C语言写一个计算器,在Visual Studio和VScode运行 ...

  5. 最大质因数 最大回文数乘积 字符串String类用法_Java每日练习题及题解(11月16日)

    <Java每日练习题及题解>系列目录 1.有限条件求和_Java每日练习题及题解(11月15日) 2.最大质因数 最大回文数乘积 字符串String类用法_Java每日练习题及题解(11月 ...

  6. C语言手写二叉树(链式存储结构)

    C语言手写二叉树(链式存储结构) 二叉树结构 二叉树基本运算 代码 图例(main函数执行过程如下:) 阶段I 阶段II 阶段III 阶段IV 阶段V 先序遍历输出过程 二叉树结构 二叉树可以用顺序存 ...

  7. C语言手写自定义三维数组

    C语言手写三维数组 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleArray及其基本运算 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleAr ...

  8. 【重难点】【JUC 03】怎么实现一个线程安全的队列、手写模拟实现一个阻塞队列

    [重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 文章目录 [重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 一.怎么实现一个线程安全的队列 ...

  9. C#中的字符串, String类和StringBuilder类

    C#中的字符串, String类和StringBuilder类 1.简介 字符串对大多数计算机程序而言非常普遍. 像文字处理软件和网页应用程序这些程序类型 都广泛采用了字符串. 这使得处理这类应用程序 ...

  10. C语言-手写任务队列

    C语言-手写任务队列 文章目录 C语言-手写任务队列 基本概念 头文件 队列实现 基本概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(Firs ...

最新文章

  1. python乘法口诀-怎么用Python把这样的乘法口诀表打出来?
  2. 谈谈java的BlockingQueue
  3. 【分享】程序的开发与编写
  4. android apr分析,APR分析信号篇
  5. redhat搭建php环境,rhel5搭建PHP5.2.6+apache2.2.9开发环境(模块全)
  6. 软件如何优雅地向前兼容?
  7. cad中tk什么意思_设计中的“Neobject”什么意思?来了解一下
  8. 【clickhouse】ClickHouse基础、实践、调优全视角解析
  9. 分布式事务框架-TX-LCN
  10. java--迭代(三)foreach解析与字节码
  11. 如何用两个队列模拟实现一个栈
  12. 小型网络综合设计 (利用交换机实现不同VLAN之间相互通信)
  13. Spark集群运行xgboost4j-spark总结
  14. NLPCC2019 - User-Characteristic Enhanced Model for Fake News Detection in Social Media
  15. javascript---对象和函数的引用、浅拷贝、深拷贝、递归
  16. 全息投影的三种热门展示方式
  17. 内网穿透技术有哪些(经验分享)
  18. C#图片处理 解决左右镜像相反(旋转图片)
  19. 自己的家用电脑怎么架设传奇私服??
  20. java货郎担问题求解_货郎担问题(TSP)

热门文章

  1. 20175323 团队项目 服务器端函数功能与业务逻辑详解
  2. Linux之Samba部署
  3. Cocos Creator下删除AnySDK步骤
  4. Qt5.3.2(VS2010)_调试_进入Qt源码
  5. Eclipse 插件开发 资料贡献
  6. blog转到CNBlog了
  7. 集合和Iterator迭代器
  8. 关于C++的字符串操作
  9. 在django项目中使用django-ckeditor
  10. Ubuntu的常识使用了解2