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

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.dtcms.com/a/295012.html

相关文章:

  • #Linux内存管理# 在一个播放系统中同时打开几十个不同的高清视频文件,发现播放有些卡顿,打开视频文件是用mmap函数,请简单分析原因。
  • SQL难点突破之复杂业务逻辑的SQL查询实战
  • pcb碳油板工艺流程
  • zabbix基于GNS3监控部署
  • 学校电子钟系统时间为何不同步?如何解决
  • 面试实战,问题六,被问数据库索引,怎么回答
  • 期权遇到股票分红会调整价格吗?
  • 使用JMeter进行压力测试(以黑马点评为例、详细图解)
  • 定义损失函数并以此训练和评估模型
  • 力扣面试150题--搜索旋转排序数组
  • RT_thread的工作原理及应用
  • java有哪些字符需要转译
  • 2026 拼多多秋招内推码(提前批)
  • 前端学习之JavaScript事件监听解析
  • Bonk发币教学全流程
  • 欧盟网络安全标准草案EN 18031详解
  • JDialong弹窗
  • 计算机网络学习----Https协议
  • 亚马逊云科技 上海AI研究院 突然解散 | AI早报
  • 13. event.target 和 event.currentTarget 区别
  • 【C语言进阶】动态内存管理(2)
  • 力扣(LeetCode) ——轮转数组(C语言)
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(2)
  • 【Web APIs】JavaScript 节点操作 ⑦ ( 创建节点案例 | 网页评论功能 )
  • 旅游管理虚拟仿真实训室:重构实践教学新生态
  • 掌握Autofac:IOC容器实战指南
  • GaussDB view视图的用法
  • 分布式光伏发电项目简易故障录波装置介绍
  • [硬件电路-78]:模拟器件 - 从宏观到微观:高频信号下电路与光路的特性演变与挑战
  • Hexo - 免费搭建个人博客05 - 更新个人博客