C++初阶作业 String类作业详解

news2025/7/8 7:40:03

作者:@小萌新
专栏:@C++初阶作业
作者简介:大二学生 希望能和大家一起进步!
本篇博客简介:会梳理一遍博主做过了String类题目 并且较为详细的讲解出来
在这里插入图片描述
_

String类的特性和使用

题目一 考察c_str()

下面代码输入正确的是?

int main(int argc, char* argv[])

{
    string a = "hello world";
	string b = a;
	if (a.c_str() == b.c_str())
	{
		cout << "true" << endl;
	}
	else cout << "false" << endl;
	string c = b;
	c = "";
	if (a.c_str() == b.c_str())

	{
		cout << "true" << endl;
	}
	else cout << "false" << endl;
	a = "";
	if (a.c_str() == b.c_str())

	{
		cout << "true" << endl;
	}
	else cout << "false" << endl;
	return 0;
}

这一题的正确答案应该是 false false false

那么考察的知识点是什么呢?

c_str的返回值

c_str的返回值是一个地址 我们这里判断是否相等应该是判断地址

而两个string类中的地址显然是不一样的 所以说这一题的结果应该是flase

那么我们变化下题目 比较s1 s2是否相同 应该是比较什么呢?

博主在vs2022版本下试验了 应该是比较两个字符串是否想同
在这里插入图片描述

在这里插入图片描述

题目二 考察erase返回值

下面程序的输出结果正确的是( )

int main()

{

string str = "Hello Bit.";

string::iterator it = str.begin();

while(it != str.end())

{
if( * it != ' ')
cout<<*it;

else
str.erase(it);
it++;

}
return 0;
}

首先这段代码是什么意思呢?

我们迭代器从前往后遍历 如果遍历到空格就删除 否则就++

那么这一题的关键点是什么呢?

关键点就在于erase的返回值

我们可以看到字符串中确实有一个空格 我们将它删除了

那么请问这个时候的迭代器指向哪里呢?

我们说erase之后迭代器应该会是指向下一个位置是不是啊

所以说这个时候应该是指向B

然后它的迭代器又++了 那么这个时候是不是就指向i了啊

所以说最后结果会是什么呢?

Helloit.

编程一 找出数组中只出现一次的数字

考察能力

  1. 对于映射的理解
  2. 如何处理特殊情况

如何找出数组中只出现一次的数字

说下这道题目的基本思路

我们建立一个映射 遍历整个字符串 将字符串里面的所有出现的字符隐射到(按照ascll码)数组里面

之后从头开始遍历字符串 看看对应数组位置是否为1就好了

不过还有几个小问题需要处理一下

  1. 如果遍历完了发现没有 怎么知道我们没有找到呢?
  2. 如果中途找到了 怎么直接结束程序呢?

编程二 找出最后一个单词的长度

考察能力:

  1. find的使用
  2. substr的使用

很简单的一道题目 主要考察的是如何使用一些库函数

找出最后一个单词的长度

编程三 大数相加

考察能力

  1. 不同类型之间转化
  2. 画图理解

大数相加

思路很简单 先将string类转化成数组 然后一个个计算就好 主要是图能不能画对

编程四 stoi模拟

考察能力

  1. 对于特殊情况的处理
  2. debug能力

stoi模拟

这题目代码也很简单 主要是考虑的情况比较多 需要多多注意

String类oj题

编程一 大数相乘

大数相乘

考察能力

  1. 两种类型转换能力
  2. 画图能力

思路也是很简单 两种类型转化一次就可以解决了

重要的是画图能力 你想要得到什么样的结果 应该从哪里开始遍历 遍历完是什么样子 这些都是要考虑的

编程二 翻转字符串区间

翻转区间

考察能力

  1. 理解能力
  2. 画图能力

讲道理 这个题目其实特别的简单 但是leetcode描述其实有点复杂了

本质上就是从零开始每间隔k个值翻转k个值

编程三 翻转字符串中所有单词

翻转字符串中所有单词

这也是属于比较简单的题目了

使用find找到空格 然后更新这一段区间就可以

编程四 回文字符串

回文字符串

这道题目可把我折磨的够久的

做的时候忽视了 题目中的细节(数字也可以)

然后还不知道有 tolower这个函数

要自己写

其实很简单 理清思路久很好写 跟我们写快排的思路差不多

考察能力

  1. 双指针的使用
  2. 条件判断

String类的模拟实现

这个在之前久实现完毕啦

以前的博客链接

String类的模拟实现

总结

到了这里我们基本就清完了Stirng类的所有作业啦 在下一次系统学算法之前基本不会碰到了

我自己感觉这一段的学习还行

不过模拟实习上还需要再多看看 自己对于列表初始化的语法还不是很熟悉 (括号里面就是初始化的内容)

然后对于这段时间学习的总结的话呢就是上课要专心 尽量跟着老师的思路走 如果有不一样的思路暂时

记录下来(可以是纸上 ipad上)不要长时间走神 这样对于听课效率来说很差

希望自己进入下一个阶段学习能够更加专心 学习到更多的知识
在这里插入图片描述

本篇博客主要介绍了Stirng类的一些作业
由于作者才疏学浅 错误在所难免 希望大佬看到可以及时指正
如果本文帮助到了你 别忘记一键三连啊
阿尼亚 哇酷哇酷!

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

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

相关文章

黑塞矩阵理解

文章目录1&#xff1a;一元泰勒展开公式2&#xff1a;二元泰勒展开公式3&#xff1a;二元函数的黑塞矩阵4&#xff1a;多元函数的黑塞矩阵其他链接1&#xff1a;一元泰勒展开公式 举例&#xff1a;f(x) 3x 2x 5 在x0或x1处的泰勒展开 当x0时&#xff1a; 当x1时&#xff…

m基于MATLAB的上行链路MIMO关键技术的研究与性能分析

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 多输入多输出(MIMO)天线技术的巨大潜力为新一代无线通信技术的研究提供了广阔的舞台。近年来&#xff0c;多用户的MIMO研究逐渐成为热点问题。针对多用户的MIMO&#xff0c;天线选择和用…

Allegro如何输出EMN文件操作指导

Allegro如何输出EMN文件操作指导 Allegro支持输出emn文件以供其他结构软件导入以查看实物效果 比如Proe,Soild work等等 下面介绍如何输出EMN文件 选择 File-export-IDF 出现一个对话框 File Name Type选择PTC,并且勾选Use Fillter 点击Fillter, 过滤掉不需要的东西,比…

快速排序、求和、模拟阶乘并利用vscode c++和matlab对程序进行计时

一、软件性能获取 分别使用 Matlab 工具和C语言获得计算下列算法的最大时间&#xff0c;最小时间及平均时间,以及相应的软件功耗&#xff1a; 1.1 一维数组排序 数组选择一万个&#xff0c;使用快速排序。处理器为英特尔i5-7200U&#xff0c;2.5GHz&#xff0c;热设计功耗为…

智慧水务解决方案-最新全套文件

智慧水务解决方案-最新全套文件一、建设背景1、安全水务&#xff0c;监管提效2、清洁水务&#xff0c;防污治污3、节能水务&#xff0c;降本增效4、民生水务&#xff0c;体验先行二、建设思路三、建设方案四、获取 - 智慧水务全套最新解决方案合集一、建设背景 建设智慧水务的…

Dubbo入门使用

Dubbo入门案例Dubbo的特性dubbo支持的注册中心Dubbo入门案例Dubbo的特性 服务治理框架服务的监控服务的注册发现服务的通信服务的容错服务的负载均衡 dubbo支持的注册中心 nacosconsolezookeeperrediseurekaetcd …… Dubbo入门案例 通过两个demo来演示如何使用dubbo进行R…

【Java基础】Java基础题

1. 重载和重写的区别 1&#xff09;重载&#xff1a; 发生在同一个类中&#xff0c;要求方法名相同、参数类型不同&#xff08;个数不同、顺序不同、类型不同&#xff09; 和方法的返回值和访问修饰符没关系&#xff08;在只有返回值和访问修饰符不同的这种情况下&#xff0c…

Linux--进程控制

目录 进程创建 fork函数初识 fork函数返回值 写时拷贝 fork的常规用法 fork调用失败的原因 进程终止 进程退出场景 退出方法 ①调用_exit函数 ②调用exit函数 ③main函数return ④异常退出 进程等待 进程等待的必要性 进程等待的方法 ①wait方法 ②waitpid方…

常用的路径规划算法浅析

路径规划 所谓路径规划&#xff0c;也就是在起点和终点之间找到一条连续的运动轨迹&#xff0c;在尽可能优化路径的同时避开环境中的障碍物。 常用的路径规划算法有传统的基于图搜索算法、基于采样的路径规划算法&#xff0c;以及考虑动力学的路径规划算法等。那么&#xff0…

位于kernel的文件系统大管家--Virtual File System

一、全局视角&#xff1a;VFS 的任务 VFS 作为中间适配层&#xff0c;他需要招呼 3 个大佬&#xff1a;1. 应用进程 &#xff0c;2.系统内核 3.底层磁盘。 二、VFS负责处理 3 个任务的核心接口 1. VFS 提供给 【应用进程 】的接口: 进程的 “办公地点” – struct fs_struc…

【C】—文件版本通讯录的实现

关于C语言的知识放在专栏&#xff1a;C 小菜坤日常上传gitee代码&#xff1a;https://gitee.com/qi-dunyan ❤❤❤ 个人简介&#xff1a;双一流非科班的一名小白&#xff0c;期待与各位大佬一起努力&#xff01; 目录思路代码实现完整代码&#xff08;可自取&#xff09;思路 …

【SQL】索引的创建与设计原则

【SQL】索引的创建与设计原则索引的声明与使用索引的创建删除索引索引设计原则数据准备&#xff1a;哪些情况适合创建索引不适合创建索引的情况索引的声明与使用 索引的创建 # 索引的创建 #法1:create table # 隐式方式创建索引.在声明有主键约束、唯一性约束、外键约束的字段…

java项目-第146期ssm人事工资管理系统(spring+springmvc+mybatis+jsp)_java毕业设计_计算机毕业设计

java项目-第146期ssm人事工资管理系统(springspringmvcmybatisjsp)_java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm人事工资管理系统》 该项目分为2个角色&#xff0c;管理员和用户。 用户可以浏览前台,包含功能有&#xff1a; 个人中心、公告信…

gin binding方法汇总

为了能够更方便的获取请求相关参数&#xff0c;提高开发效率&#xff0c;gin框架提供了Bind系列方法。 分类 Bind系列方法大致分两类&#xff1a; Should类型Must类型 二者的区别就是&#xff1a;should和must的区别&#xff0c;即must绑定失败会报错 关系图 Should类型 …

【licheePi-dock】驱动一个OLED-SSD1306

【licheePi-dock】驱动一个OLED-SSD1306OLED驱动修改设备树向内核添加驱动1.找到一个合适的位置&#xff0c;创建oled驱动文件&#xff1a;修改当前目录下的Kconfig和Makefile把驱动添加进内核编译编写应用程序编译我使用的是cmakeOLED驱动 本文使用的是i2c驱动的OLED【Lichee…

【PowerQuery】在Excel中手动刷新数据连接

将数据通过PowerQuery 导入进来后,这里将进行数据分组运算,最终的数据计算结果将保存在Excel 表格中,图1为数据导入结果。 图1 使用PowerQuery 加载导入的数据 在Excel中,如果我们希望进行销售统计的手动更新可以使用几种不同的方法来进行刷新这些数据。 1.刷新单一数据连…

UJNOJ_1000-1007_python

1000: AB Problem 内存限制&#xff1a;128 MB时间限制&#xff1a;10 S 评测方式&#xff1a;文本比较命题人&#xff1a;jiangyan 提交&#xff1a;109解决&#xff1a;87 提交提交记录统计 题目描述 Calculate ab result 输入 Two integer a,b (0<a,b<10) …

青少年python系列 46.文件操作2

青少年python教学视频ppt源码 青少年ptyhon可以参加的主流比赛大全_老程序员115的博客-CSDN博客 在上节课我们学习了如何查询文本信息内容&#xff0c;那我们能否使用Python来往文本中保存数据信息呢&#xff1f;当然也是可以的。Python可以完成将数据信息写入文件&#xff0c…

【机器学习】主成分分析

有任何的书写错误、排版错误、概念错误等&#xff0c;希望大家包含指正。 维数灾难 在高维情形下出现的数样本稀疏、距离计算困难等问题&#xff0c;是所有机器学习方法共同面临的的严重障碍&#xff0c;被称为“维数灾难”或“维数危机”&#xff08;curse of dimensionality…

MongoDB的安装配置及使用(WIndows/Java)

Hi&#xff0c;I‘m Shendi 下面主要介绍使用 Windows安装 MongoDB 和使用 Java 操作 文章目录MongoDB下载创建数据目录运行配置安装服务创建用户用户角色列表Java使用查询数据插入数据修改数据删除数据设置数据过期时间其他问题MongoClient是否需要关闭&#xff1f;内存为什么…