c++_day2

第一题: 继续为 mystring类编写以下方法:

1:析构函数,释放buf指向的堆空间

2:编写 append(const mystring r) 为当前字符串尾部,拼接新的字符串r

3:编写 isEqual(const mystring r) 判断当前字符串和 字符串 r是否相等


#include <iostream>
#include <cstring>using namespace std;//访问私有成员,使用getter和settter函数进行访问
class mystring   // 定义一个名为 mystring的类,用于模拟字符串处理
{
private:char* buf;
public:mystring(const char* str); //构造函数,接受一个const char* 类型的参数,用于初始化bufmystring();~mystring();//析构函数void show();   //输出的字符串void setbuf(const mystring res);  //修改字符串的信息const char* getbuf()const;  //获取字符串的信息void append(const mystring res); //拼接字符串int isequal(const mystring res); //比较字符串是否相等
};mystring ::~mystring()
{free(buf);  //释放申请的堆空间printf("空间释放\n");
}void mystring::setbuf(const mystring res)
{free(this->buf);int len=strlen(res.buf);this->buf=(char*)calloc(1,len+1);strcpy(this->buf,res.buf);  // 将传入的字符串复制到新分配的内存中}const char* mystring::getbuf()const{return buf;}mystring::mystring(){buf=(char*)calloc(1,1);}
mystring::mystring(const char* str)
{int len =strlen(str);buf=(char*)calloc(1,len+1);strcpy(buf,str);
}void mystring::show()
{cout << buf << endl;
}
void mystring::append(const mystring res)
{int len1 = strlen(buf);int len2 = strlen(res.buf);char* arr = (char*)calloc(1, len1 + len2 + 1);//申请一个新空间作为中间变量接收strcpy(arr, buf);strcat(arr, res.buf);free(buf);buf = arr;
}
int mystring::isequal(const mystring res)
{int rest=(strcmp(buf,res.buf)==0);if(rest==1){cout << "相等" << endl;}else{cout << "不相等" << endl;}return rest; //返回结果
}int main()
{mystring dest;  //使用无参构造函数初始化,定义目标字符串mystring str="hello"; //使用带参构造函数定义源字符串,并初始化为 "hello"dest.setbuf(str); //将dest的内容修改成str的内容cout << "dest= " << dest.getbuf() << endl;dest.append(" world");// 将dest的内容追加到str后面cout << "dest= " << dest.getbuf() << endl;mystring str1="hello world";dest.isequal(str1);  //判断str1与追加后的dest字符串是否相等mystring str2="helloworld 666";dest.isequal(str2);return 0;
}

效果展示:

第二题: 编写如下类: class File{ FILE* fp };

1:构造函数,打开一个指定的文件

2:write函数 向文件中写入数据

3:read函数,从文件中读取数据,以string类型返回

 

#include <iostream>
#include <string.h>using namespace std;class file{ // 定义一个名为File的类,用于文件的处理
private://string buf="hello world";FILE* fp;
public:file(){char arr[100]="hello world";fp=fopen("D:\\Users\\C++\\day2\\zy2\\1.txt","w");fwrite(arr,strlen(arr),1,fp);//写入文件fclose(fp);fp=fopen("D:\\Users\\C++\\day2\\zy2\\1.txt","r");char brr[100]=" ";fread(brr,sizeof(brr),strlen(brr),fp); //读取文件cout << "接收的文件数据数组:brr= " << brr << endl;}~file(){fclose(fp);}};int main()
{file str;return 0;
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/19472.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习基础06

目录 1.梯度下降 1.1梯度下降概念 1.2梯度下降公式 1.3学习率 1.4实现梯度下降 1.5API 1.5.1随机梯度下降SGD 1.5.2小批量梯度下降MBGD 1.6梯度下降优化 2.欠拟合过拟合 2.1欠拟合 2.2过拟合 2.3正则化 2.3.1L1正则项&#xff08;曼哈顿距离&#xff09; 2.3.2…

基于一种基于OCR图像识别技术的发票采集管理系统及方法

本发明涉及了一种基于OCR图像识别技术的发票采集管理系统及方法&#xff0c;该系统的发票信息采集单元采集发票图片信息数据&#xff0c;OCR图像识别单元基于OCR图像识别技术并结合人工智能深度学习算法对发票图片信息数据进行识别读取以获得OCR图像识别结果&#xff0c;发票信…

Windows注册表基础学习

修改注册表让cmd ascii输出有颜色 reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1 如何打开注册表编辑器 运行regedit 按下"Winr"组合键&#xff0c;在打开的"运行"对话框中输入"regedit"&#xff0c;单击"确定"…

CarSim复制数据注意事项

更正&#xff0c;上图中提到的“数据集”应该是“数据类别”&#xff0c;可以理解为数据集的一个子集。

Spring:注解开发依赖注入

Spring为了使用注解简化开发&#xff0c;并没有提供构造函数注入、setter注入对应的注解&#xff0c;只提供了自动装配的注解实现。 直接上代码&#xff1a; 1&#xff0c;添加一个配置类SpringConfig Configuration ComponentScan("com.itheima") //PropertySourc…

springboot006基于SpringBoot的网上订餐系统(源码+包运行+LW+技术指导)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

【Linux】learning notes(2)

文章目录 1、快捷键2、专业名词2.1、驱动2.2、内核2.3、U-Boot2.4、Dynamic Library and Static Library2.5、SDK / NDK / UDK 3、BUG 前文链接&#xff1a; 【Linux】learning notes 1、快捷键 在文件夹里&#xff0c;ctrll&#xff0c;选定文件夹路径 Linux下的ctrl常用组合…

商业银行核心系统单元化改造的研究与思考

随着金融科技的快速发展&#xff0c;银行核心系统面临着更高的处理能力、扩展能力及业务连续性的要求与挑战。为应对这些挑战&#xff0c;许多银行开始考虑对其核心系统进行单元化改造。本文首先分析了传统银行核心系统存在的问题以及单元化改造的必要性&#xff0c;然后详细阐…

指针

内存和地址 内存 我们知道计算上CPU&#xff08;中央处理器&#xff09;在处理数据的时候&#xff0c;需要的数据是在内存中读取的&#xff0c;处理后的数据也会放回内存中&#xff0c;那我们电脑上的哪些内存空间如何高效的管理呢&#xff1f; 其实也是把内存划分为一个个的…

强大的正则表达式——Medium

由上一篇文章《Easy》中提到过的&#xff1a; 还是直接让AI写个python脚本生成难度2的正则表达式&#xff0c;但是生成的正则表达式无法成功获取到flag&#xff1a; 这里了解了一下相关知识&#xff0c;字符串形式的整数对常数求模是可以用有限状态机来实现的。对于二进制数字来…

科技改变工作方式:群晖NAS安装内网穿透实现个性化办公office文档分享(1)

文章目录 前言1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 前言 本文将详细介绍如何在群晖NAS上安装Synology Office和Synology Drive Server&#xff0c;并利用Cpolar内网穿透工具为本地文档配置固定的公网…

android:taskAffinity 对Activity退出时跳转的影响

android:taskAffinity 对Activity跳转的影响 概述taskAffinity 的工作机制taskAffinity对 Activity 跳转的影响一个实际的开发问题总结参考 概述 在 Android 开发中&#xff0c;任务栈&#xff08;Task&#xff09;是一个核心概念。它决定了应用程序的 Activity 如何相互交互以…

运算放大器的学习(三)增益带宽积

我们接着了解运放的相关指标参数&#xff0c;下面我们看下增益带宽积与压摆率. 增益带宽积:即电压增益&#xff08;Gain&#xff09;和带宽&#xff08;Bandwidth&#xff09;的乘积是一个常数&#xff0c;称为增益带宽积&#xff08;Gain Bandwidth Product&#xff09;. 增益…

ThinkPHP6门面(Facade)

门面 门面&#xff08;Facade&#xff09; 门面为容器中的&#xff08;动态&#xff09;类提供了一个静态调用接口&#xff0c;相比于传统的静态方法调用&#xff0c; 带来了更好的可测试性和扩展性&#xff0c;你可以为任何的非静态类库定义一个facade类。 系统已经为大部分…

【概率论】概率密度到底是什么

1. 书本上的定义&#xff1a; 如果对于随机变量X的分布函数F(X)&#xff0c;存在一个非负可积函数f(x)&#xff0c;使得任意实数x&#xff0c;都有&#xff1a; 称X为连续型随机变量&#xff0c;函数f(x)称为X的概率密度 所谓的概率密度&#xff0c;就是 概率/区间长度 &#…

线代笔记期末复习

第一讲行列式的计算 基础定义和规则 ps&#xff1a; 交换时不止行可以交换&#xff0c;列方便时也可以 我的第一作法&#xff1a;是把行相加&#xff0c;然后后续无差别 范德蒙行列式的计算&#xff1a; 要求第一行/列全为1 每个公比元素作差再相乘 爪型 步骤&#xff1a;…

javaweb快速入门 - 01

1.基本概念 web开发&#xff1a; web&#xff0c;网页的意思 &#xff0c; www.baidu.com静态web html&#xff0c;css提供给所有人看的数据始终不会发生变化&#xff01; 动态web 淘宝&#xff0c;几乎是所有的网站&#xff1b;提供给所有人看的数据始终会发生变化&#xf…

计算机网络学习笔记-6.应用层

文章目录 客户端-服务器模型&#xff08;C/S&#xff09;对等网络模型&#xff08;P2P&#xff09;DNS&#xff08;域名系统&#xff09;文件传输协议&#xff08;FTP&#xff09;FTP的基本功能&#xff1a;FTP的工作原理&#xff1a; 万维网&#xff08;WWW&#xff09;URL万维…

使用IDE实现java端远程调试功能

使用IDE实现java端远程调试功能 1. 整体描述2. 前期准备3. 具体操作3.1 修改启动命令3.2 IDE配置3.3 打断点3.4 运行Debug 4. 总结 1. 整体描述 在做项目时&#xff0c;有些时候&#xff0c;需要和第三方进行调式&#xff0c;但是第三方不在一起&#xff0c;需要进行远程调试&…

241118学习日志——[CSDIY] [InternStudio] 大模型训练营 [07]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…