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

Day01_C++

01.思维导图

02.

方法一:

#include <iostream>
#include <cstring>
#include <iostream>
using namespace std;
class mystring
{
private:char* buf;int len;public:mystring(const char* str);void copy(const char* ptr);void copy(mystring ptr);void append(const char* ptr);void append(mystring ptr);void compare(const char* ptr);void show(){cout << buf << endl;}
};
mystring::mystring(const char* str):len(strlen(str))
{buf=(char*)malloc(len+1);strcpy(buf,str);
}//复制字符串
void mystring::copy(const char* ptr)
{int i=0;len=strlen(ptr);while(ptr[i]!='\0'){buf[i]=ptr[i];i++;}buf[i]='\0';
}void mystring::copy(mystring ptr)
{int i=0;len=ptr.len;while(ptr.buf[i]!='\0'){buf[i]=ptr.buf[i];i++;}buf[i]='\0';
}
//追加字符串
void mystring::append(const char* ptr)
{int i=0,j=0;while(buf[i]!='\0'){i++;};for(;ptr[j]!='\0';j++,i++){buf[i]=ptr[j];}buf[i]='\0'; len=i;
}void mystring::append(mystring ptr)
{int i=len,j=0;while(ptr.buf[j]!='\0'){buf[i]=ptr.buf[j];i++;j++;
}
buf[i]='\0';
len=i;}
//主函数
int main()
{mystring str = "hello";str.show();mystring ptr = "world";str.copy(ptr);str.show();str.copy("你好");str.show();str.append(ptr);str.show();str.append("你好");str.show();
}

方法二:

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>using namespace std;
class mystring{
private://指向一个堆空间,该堆空间用来保存外部传入的字符串char* buf;int len;//记录buf里面保存的字符串有多少
public:mystring(const char* s){len=strlen(s);buf=(char*)malloc(len+1);strcpy(buf,s);}void copy(mystring s){len=s.len;char* str=s.buf;strcpy(buf,str);}void copy(const char* s){len=strlen(s);strcpy(buf,s);}void append(mystring s){len+=s.len;char* str=s.buf;strcat(buf,str);}void append(const char* s){int l=strlen(s);len+=l;strcat(buf,s);}int compare(mystring s){char* str=s.buf;return strcmp(buf,str);}int compare(const char* s){return strcmp(buf,s);}void show(){cout<<buf<<endl;}char at(int n){return buf[n];}};int main(int argc,const char** argv)
{mystring str="hello";//这段代码要求一定为mystring类写一个可隐式调用的单参构造函数mystring ptr="world";//在写单参构造函数的时候,私有成员len使用列表初始化的形式初始化str.copy(ptr);//str.copy("nihao");str.show();str.append(ptr);str.append("你好");str.show();str.compare(ptr);str.compare("您好");str.show();//最后再写一个show函数,用来在终端输出str里面保存的字符串cout<<str.at(2)<<endl;}

http://www.lryc.cn/news/597221.html

相关文章:

  • 河南萌新联赛2025第二场-河南农业大学
  • 第九讲:C++中的list与forward_list
  • (进阶向)Python第十三期,opencv的图像预处理方法[1]
  • 性能测试-jmeter实战5
  • 28. 探秘重写与重载:面向对象基础
  • ubuntulinux快捷键
  • Ubuntu 1804 编译ffmpeg qsv MediaSDK libva 遇到的问题记录
  • freqtrade在docker运行一个dryrun实例
  • Python实战:基于Streamlit的股票筛选系统,实时K线图+数据缓存优化
  • C/C++中的内存管理
  • uniapp+vue3小程序点击保存图片、保存二维码
  • 一洽客服系统:小程序接入功能说明
  • 优化:Toc小程序猜你喜欢功能
  • 校园后勤服务平台小程序的设计与实现
  • FastGPT + Kymo:解锁企业专属知识库与智能体开发新体验
  • 【黑马SpringCloud微服务开发与实战】(六)分布式事务
  • Leetcode力扣解题记录--第54题(矩阵螺旋)
  • 算法:数组part01:704. 二分查找 +977.有序数组的平方
  • Java开发岗面试记录合集
  • LLM 中的 温度怎么控制随机性的?
  • AI驱动攻防升级,API安全走到关键档口
  • CentOS 7 Linux 用 yum 安装 Docker,含 Docker 镜像无法拉取问题(即 docker pull 失败)的解决方案
  • 路由器与交换机的区别
  • 数据结构之队列(C语言)
  • 【优选算法-多源 BFS】多源 BFS:解决多个起点的广度优先搜索
  • 【大模型文生图、文生音频实战Demo】基于Spring AI Alibaba和阿里百炼大模型实现文生图、文生视频
  • Android MediaCodec 的使用和源码实现分析
  • 2.1 为什么定义tensor数据结构?
  • 【有趣的跳跃一维数组问题】2022-7-27
  • 彻底掌握双列集合——Map接口以及实现类和常用API及其底层原理