当前位置: 首页 > news >正文

C++ day3

题目:仿照string类,实现myString

#include <iostream>
#include <cstring> 
using namespace std;
//仿照string完成myString类
class myString
{private:char *str;          //记录c风格的字符串int size;            //记录分配的内存大小int len;          //字符串长度public://无参构造myString():size(10),len(0){str = new char[size]; //构造出一个长度为10的字符串str[0]='\0';}//有参构造myString(const char *s): len(strlen(s)), size(len + 1)        //有参构造     string  s("hello wirld");{str = new char[size];strcpy(str,s);}//析构函数~myString(){delete [] str;}//判空函数bool empty(){return len==0;}//size函数int get_size(){return size;}//或许字符串长度int get_len(){return len;}//c_str函数const char* c_str(){return str;}//at函数char &at(int index){if (index < 0 || index >=len){throw std::out_of_range("查找范围错误");}return str[index];}//二倍扩容void resize(int newSize){if (newSize > size){char *newStr = new char[newSize];std::strcpy(newStr, str);delete[] str;str = newStr;size = newSize;}}
};int main()
{myString s("Hello, World!");std::cout << s.c_str() << std::endl;std::cout << "len: " << s.get_len() << std::endl;std::cout << "Size: " << s.get_size() << std::endl;std::cout << "第七个字符为: " << s.at(7) << std::endl;return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OpenStack创建云主机——超级详细步骤
  • Java的IO模型详解-BIO,NIO,AIO
  • Java并发编程(21)—— CurrentHashMap源码分析
  • redis集群部署
  • 字符串的内存存储
  • 使用Python+docx+sqlite3将Word表格内容写入sqlite表中
  • 区块链入门
  • Postman注册使用
  • 七、Centos安装LDAP--Docker版--已失败
  • 探索分析文档布局,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建大规模文档数据集DocLayNet场景下文档图像布局智能检测分析识别系统
  • elasticsearch之我不会的
  • Docker 部署 net6 webapi项目
  • 【ElasticSearch】基本命令
  • 【功能自动化】自动识别测试用例
  • zdppy+vue3+onlyoffice文档管理系统实战 20240829上课笔记 Python验证码框架完成
  • 2019.2.20 c++ 知识梳理
  • create-react-app项目添加less配置
  • crontab执行失败的多种原因
  • HTTP中的ETag在移动客户端的应用
  • input的行数自动增减
  • Java小白进阶笔记(3)-初级面向对象
  • k个最大的数及变种小结
  • Laravel 中的一个后期静态绑定
  • leetcode46 Permutation 排列组合
  • 初探 Vue 生命周期和钩子函数
  • 后端_MYSQL
  • 简析gRPC client 连接管理
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端_面试
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 如何在GitHub上创建个人博客
  • 深度解析利用ES6进行Promise封装总结
  • 小程序测试方案初探
  • 1.Ext JS 建立web开发工程
  • python最赚钱的4个方向,你最心动的是哪个?
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​queue --- 一个同步的队列类​
  • (12)Hive调优——count distinct去重优化
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (备忘)Java Map 遍历
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十八)SpringBoot之发送QQ邮件
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET 使用 XPath 来读写 XML 文件
  • .Net的DataSet直接与SQL2005交互
  • .net反编译工具
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /etc/skel 目录作用
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [Assignment] C++1
  • [autojs]逍遥模拟器和vscode对接