- 使用结构体实现string的功能,(定义全局函数)实现返回值是首地址的功能,再来实现运算,"+、>、==",实现清空字符串的功能
#include <iostream> #include <cstring> using namespace std;// 自定义字符串结构体 struct MyString {char* data;size_t length;// 构造函数MyString() {data = nullptr;length = 0;}// 带参数的构造函数MyString(const char* str) {length = strlen(str);data = new char[length + 1];strcpy(data, str);} };// 获取字符串首地址 char* getAddress(MyString& str) {return str.data; }// 字符串连接操作 MyString operator+(const MyString& str1, const MyString& str2) {MyString result;result.length = str1.length + str2.length;result.data = new char[result.length + 1];strcpy(result.data, str1.data);strcat(result.data, str2.data);return result; }// 比较运算符 bool operator>(const MyString& str1, const MyString& str2) {return strcmp(str1.data, str2.data) > 0; }bool operator==(const MyString& str1, const MyString& str2) {return strcmp(str1.data, str2.data) == 0; }// 清空字符串 void clear(MyString& str) {delete[] str.data;str.data = nullptr;str.length = 0; }int main() {// 测试代码MyString s1("Hello");MyString s2(" World");// 测试加法运算符MyString s3 = s1 + s2;cout << "s3 = " << s3.data << endl;// 测试比较运算符cout << "s1 > s2: " << (s1 > s2) << endl;cout << "s1 == s2: " << (s1 == s2) << endl;// 测试获取首地址cout << "s1的首地址: " << static_cast<void*>(getAddress(s1)) << endl;// 测试清空功能clear(s3);cout << "清空后s3的长度: " << s3.length << endl;return 0; }
C++ day1
2025/2/24 7:26:09
来源:https://blog.csdn.net/m0_72110718/article/details/144335522
浏览:
次
关键词:C++ day1
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
热文排行
- 华为 海思22AP10(SS524)H.265 编解码处理器用户指南
- 数据库物理结构设计
- 如何在 Mac 上清空硬盘后恢复丢失的数据?
- npm install puppeteer 报错 npm ERR! PUPPETEER_DOWNLOAD_HOST is deprecated解决办法
- 基于重要抽样的主动学习不平衡分类方法ALIS
- 《缺失MRI模态下的脑肿瘤分割的潜在相关表示学习》| 文献速递-深度学习肿瘤自动分割
- 大模型分离架构学习记录
- (2)Django生产环境数据库的切换以及环境配置python-dotenv方案
- 【微信小程序】自定义组件 - 组件的生命周期
- vue项目——页面绑定回车Enter事件,进入页面路由和离开页面路由解绑事件——js技能提升
最新新闻
- C++ day1
- FastWeb - Lua开源跨平台网站开发服务
- GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测(Maltab)
- 2025最新深度学习pytorch完整配置:conda/jupyter/vscode
- 强制升级最新系统,微软全面淘汰Win10和部分11用户
- 文章解读与仿真程序复现思路——电网技术@EI\CSCD\北大核心《基于双缓冲区生成对抗模仿学习的电力系统实时安全约束经济调度》
- LLM2CLIP论文学习笔记:强大的语言模型解锁更丰富的视觉表征
- OpenHarmony-7.IDL工具
- 【Redis】SpringBoot整合Redis以及RedisTemplate的使用
- DevExpress WPF v24.2新功能预览 - 键盘导航和屏幕阅读器功能增强
推荐新闻
- C++ day1
- FastWeb - Lua开源跨平台网站开发服务
- GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测(Maltab)
- 2025最新深度学习pytorch完整配置:conda/jupyter/vscode
- 强制升级最新系统,微软全面淘汰Win10和部分11用户
- 文章解读与仿真程序复现思路——电网技术@EI\CSCD\北大核心《基于双缓冲区生成对抗模仿学习的电力系统实时安全约束经济调度》
- LLM2CLIP论文学习笔记:强大的语言模型解锁更丰富的视觉表征
- OpenHarmony-7.IDL工具
- 【Redis】SpringBoot整合Redis以及RedisTemplate的使用
- DevExpress WPF v24.2新功能预览 - 键盘导航和屏幕阅读器功能增强