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

2024.8.29 作业

仿照string完成myString类

#include <iostream>
#include <cstring>
using namespace std;class myString
{private:char *str;          //记录c风格的字符串int size;            //记录字符串的实际长度public://无参构造myString():size(10){str = new char[size];         //构造出一个长度为10的字符串}//有参构造myString(const char *s)              //有参构造     string  s("hello wirld");{size = strlen(s);str = new char[size+1];strcpy(str,s);}//判空函数bool empty(){return str[0]=='\0';}//size函数int get_size(){return size;}//c_str函数char *c_str(){return str;}//at函数char &at(int index){if(index<0||index>=size){cout<<"index error"<<endl;}else{char &s = str[index];return s;}}//show函数void show(){for(int i=0;i<size;i++){cout<<str[i];}cout<<endl;}//二倍扩容void expend(){char *temp = new char[size*2];strcpy(temp,str);delete []str;str = temp;size = size*2;}//析构函数~myString(){delete[] str;}};int main()
{myString s("hello");cout<<s.get_size()<<endl;s.at(3)='x';s.show();char str[10]="";strcpy(str,s.c_str());cout<<str<<endl;return 0;
}

思维导图


http://www.mrgr.cn/news/14418.html

相关文章:

  • 【准则化的思想】绝对充分度
  • 探索 Linux 内核启动过程
  • 爬取数据时,如何避免违法问题
  • 使用ddns-go实现自动配置IPv6的DDNS
  • 数据库(专业存储数据)
  • 【工具使用】clang++踩坑记录
  • mac系统下Java环境安装
  • React滚动加载(无限滚动)功能实现
  • 「个性化定制」引领美业新潮流|博弈美业SaaS系统探索未来美业的个性化革新
  • 恒电流间歇滴定法 (GITT) 测试教程
  • 高级MySQL数据库备份脚本
  • Flask-RESTFul 之 RESTFul 的响应处理
  • 离线环境玩转 Tauri
  • WPF- vs中的WPF应用项目模板 如何自己实现
  • 【前端面试基础】计算机网络、浏览器、操作系统
  • 大数据基础:离线与实时数仓区别和建设思路
  • AI模型:全能与专精的较量与未来潜力探讨
  • Vue vue/cli3 与 vue/cli4 v-for 和 v-if 一起使用冲突
  • IPv4地址和子网掩码
  • 2024最新FL Studio24.1.1.4285破解版中文安装包百度云网盘下载地址