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

C++day1

 

#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;
public:// 单参构造函数,支持隐式调用,列表初始化 lenmystring(const char* str): len(strlen(str)){buf = new char[len + 1];strcpy(buf, str);}// copy 函数,从 mystring 对象拷贝void copy(const mystring& other) {len = other.len;buf = new char[len + 1];strcpy(buf, other.buf);}// copy 函数,从 C 风格字符串拷贝void copy(const char* str) {len = strlen(str); buf = new char[len + 1];strcpy(buf, str);}// append 函数,追加 mystring 对象内容void append(const mystring& other) {int newLen = len + other.len;char* newBuf = new char[newLen + 1];strcpy(newBuf, buf);strcat(newBuf, other.buf);buf = newBuf;len = newLen;}// append 函数,追加 C 风格字符串内容void append(const char* str) {int strLen = strlen(str);int newLen = len + strLen;char* newBuf = new char[newLen + 1];strcpy(newBuf, buf);strcat(newBuf, str);buf = newBuf;len = newLen;}// compare 函数,比较 mystring 对象int compare(const mystring& other) {return strcmp(buf, other.buf);}// compare 函数,比较 C 风格字符串int compare(const char* str)  {return strcmp(buf, str);}// show 函数,输出字符串void show()  {cout << buf << endl;}// at 函数,获取指定位置字符char at(int index)  {if (index >= 0 && index < len) {return buf[index];}// 这里可根据需求处理越界,简单返回空字符或抛异常等,这里返回空字符示例return '\0';}
};int main() {mystring str = "hello";mystring ptr = "world";str.copy(ptr);str.copy("你好");str.append(ptr);str.append("你好");str.compare(ptr);str.compare("你好");str.show();cout << str.at(0) << endl;return 0;
}

http://www.xdnf.cn/news/16236.html

相关文章:

  • 想曰加密工具好用吗?本地安全、支持多算法的加密方案详解
  • 基于Dapr Sidecar的微服务通信框架设计与性能优化实践
  • 设计模式 八:原型模式 (Prototype Pattern)
  • .NET-键控服务依赖注入
  • LeetCode|Day23|326. 3 的幂|Python刷题笔记
  • 认识Transformer架构
  • 第十讲:stack、queue、priority_queue以及deque
  • 【力扣】第15题:三数之和
  • C# 继承 虚方法
  • idea部署新项目时,用自定义的maven出现的问题解决
  • QMC5883L 坐标系Z轴是垂直于芯片平面向下(芯片朝上时指向地面)还是垂直于芯片平面向上(芯片朝上时指向天空)
  • Qt内存管理的核心点
  • 游戏盾 在线游戏的终极防护屏障
  • 【2025目标检测】最新论文
  • 2025年Zigbee技术白皮书:全球物联网无线通信的关键创新
  • 深度学习的Logits:logist 是什么,上一维度的隐藏向量怎么获取
  • 基于GitHub的Terraform自动化管理最佳实践
  • rust嵌入式开发零基础入门教程(四)
  • 第一章:Go语言基础入门之Hello World与Go程序结构
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-微博点赞量Top6实现
  • Https以及CA证书
  • 基于php的校园招聘平台
  • SpringCloud seata全局事务
  • Matlab学习笔记:逻辑基础
  • 【数学建模 | Matlab】二维绘图 和 三维绘图
  • CLI 与 IDE 编码代理比较:提升开发效率的两种路径
  • 使用Docker搭建SearXNG搜索引擎
  • 直播一体机技术方案解析:基于RK3588S的硬件架构特性​
  • 地理类专业选择指南:地理科学/测绘工程/遥感科学与技术
  • 基于LNMP分布式个人云存储