C语言手写模拟字符串String类
一、在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类相关推荐
- C语言手写SDS字符串的实现思路
C语言手写SDS字符串的实现思路 Simple Dynamic Strings (简称 SDS) 是一个 C 语言封装的的字符串,它增强了 C 语言字符串处理的能力. SDS 的 C 语言实现通常包括 ...
- 手写模拟spring扫描底层实现
手写模拟spring扫描底层实现 前言 1.ApplicationContext和AppConfig 2.@Component和@ComponentScan注解 3.UserService和Test ...
- Java学习笔记(六)--字符串String类
文章目录 字符串 一.String 类 1.1 声明字符串 1.2 创建字符串 二.连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三.获取字符串信息 3.1 获取字符串长度 3.2 字 ...
- C语言手写栈、手写计算器
C语言实现表达式求值 文章结构 C语言手写栈Struct Stack 后缀表达式求值 中缀表达式转后缀表达式 文章结构 本文尝试通过纯C语言写一个计算器,在Visual Studio和VScode运行 ...
- 最大质因数 最大回文数乘积 字符串String类用法_Java每日练习题及题解(11月16日)
<Java每日练习题及题解>系列目录 1.有限条件求和_Java每日练习题及题解(11月15日) 2.最大质因数 最大回文数乘积 字符串String类用法_Java每日练习题及题解(11月 ...
- C语言手写二叉树(链式存储结构)
C语言手写二叉树(链式存储结构) 二叉树结构 二叉树基本运算 代码 图例(main函数执行过程如下:) 阶段I 阶段II 阶段III 阶段IV 阶段V 先序遍历输出过程 二叉树结构 二叉树可以用顺序存 ...
- C语言手写自定义三维数组
C语言手写三维数组 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleArray及其基本运算 本文目的是通过C语言的结构体和动态数组,实现自定义类型的三维数组TripleAr ...
- 【重难点】【JUC 03】怎么实现一个线程安全的队列、手写模拟实现一个阻塞队列
[重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 文章目录 [重难点][JUC 03]怎么实现一个线程安全的队列.手写模拟实现一个阻塞队列 一.怎么实现一个线程安全的队列 ...
- C#中的字符串, String类和StringBuilder类
C#中的字符串, String类和StringBuilder类 1.简介 字符串对大多数计算机程序而言非常普遍. 像文字处理软件和网页应用程序这些程序类型 都广泛采用了字符串. 这使得处理这类应用程序 ...
- C语言-手写任务队列
C语言-手写任务队列 文章目录 C语言-手写任务队列 基本概念 头文件 队列实现 基本概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(Firs ...
最新文章
- python乘法口诀-怎么用Python把这样的乘法口诀表打出来?
- 谈谈java的BlockingQueue
- 【分享】程序的开发与编写
- android apr分析,APR分析信号篇
- redhat搭建php环境,rhel5搭建PHP5.2.6+apache2.2.9开发环境(模块全)
- 软件如何优雅地向前兼容?
- cad中tk什么意思_设计中的“Neobject”什么意思?来了解一下
- 【clickhouse】ClickHouse基础、实践、调优全视角解析
- 分布式事务框架-TX-LCN
- java--迭代(三)foreach解析与字节码
- 如何用两个队列模拟实现一个栈
- 小型网络综合设计 (利用交换机实现不同VLAN之间相互通信)
- Spark集群运行xgboost4j-spark总结
- NLPCC2019 - User-Characteristic Enhanced Model for Fake News Detection in Social Media
- javascript---对象和函数的引用、浅拷贝、深拷贝、递归
- 全息投影的三种热门展示方式
- 内网穿透技术有哪些(经验分享)
- C#图片处理 解决左右镜像相反(旋转图片)
- 自己的家用电脑怎么架设传奇私服??
- java货郎担问题求解_货郎担问题(TSP)