华为机考程序:字符串操作与字符计数
需积分: 0 56 浏览量
更新于2024-08-03
收藏 28KB DOCX 举报
本资源包含了三个关于C++编程的练习题目,分别涉及字符串操作、字符处理以及排序算法。让我们逐一解析这些知识点:
1. **HJ1 - 字符串最后一个单词的长度**
这段代码展示了如何在C++中获取输入字符串`s`中最末尾单词的长度。首先,程序通过`getline(cin, s)`从用户输入读取一行字符串。然后,通过`string::size()`函数获取字符串的长度,并将其存储在`int s_len`中。接下来,遍历字符串从后往前,用`int word_len = 0`记录单词的长度。遇到空格(`' '`或换行符)时,`else`分支中断循环并跳出,因为这标志着一个单词的结束。最后,`cout << word_len << endl;`输出单词的长度。
2. **HJ2 - 计算某字符在另一个字符串中的出现次数**
这个程序的功能是统计给定字符`a`在字符串`s1`中出现的次数,同时使用自定义函数`changechar(char &a)`进行大小写转换。首先,用户分别输入两个字符串`s1`和`s2`。`changechar`函数接受一个字符并根据ASCII值范围将其转换为小写(例如,`a -= 32`)。接着,遍历`s1`并对其中每个字符调用`changechar`函数,使其统一到小写。然后,比较`s1`中的字符与`s2`的第一个字符`s2[0]`,如果匹配,`count`递增。最后,输出计数结果。
3. **HJ3 - 明明的随机数 - 快速排序算法实现**
这部分代码实现了快速排序算法的简化版本,主要关注的是`partition`函数。快速排序是一种分治策略的排序算法,这里选择数组中的最后一个元素作为枢轴(pivot),通过`partition`函数将数组划分为两部分:左侧的元素都小于等于枢轴,右侧的元素都大于枢轴。`partition`函数通过两个指针`i`和`j`进行操作,当遇到小于等于枢轴的元素时,交换`arr[i]`和`arr[j]`,`i`向右移动。当`j`到达边界时,枢轴元素与`arr[i+1]`交换位置,完成一次划分。`quickSort`函数调用`partition`函数进行递归排序,直到整个数组有序。
通过这三个练习,学习者可以提升字符串操作、字符处理、函数设计和排序算法等C++编程基础能力。实际应用中,这类技能对于处理文本数据、数据处理和算法优化都有重要意义。
144 浏览量
2021-12-29 上传
189 浏览量
2021-12-27 上传
2021-12-27 上传
2024-05-18 上传
728 浏览量
yingxiaofan
- 粉丝: 0
- 资源: 1
最新资源
- ES管理利器:ES Head工具详解
- Layui前端UI框架压缩包:轻量级的Web界面构建利器
- WPF 字体布局问题解决方法与应用案例
- 响应式网页布局教程:CSS实现全平台适配
- Windows平台Elasticsearch 8.10.2版发布
- ICEY开源小程序:定时显示极限值提醒
- MATLAB条形图绘制指南:从入门到进阶技巧全解析
- WPF实现任务管理器进程分组逻辑教程解析
- C#编程实现显卡硬件信息的获取方法
- 前端世界核心-HTML+CSS+JS团队服务网页模板开发
- 精选SQL面试题大汇总
- Nacos Server 1.2.1在Linux系统的安装包介绍
- 易语言MySQL支持库3.0#0版全新升级与使用指南
- 快乐足球响应式网页模板:前端开发全技能秘籍
- OpenEuler4.19内核发布:国产操作系统的里程碑
- Boyue Zheng的LeetCode Python解答集