C++_find 统计一个单词 在一段文中出现的次数

在这里插入图片描述

注解:

使用y.find(x, n)从位置n开始在字符串y中查找子串x首次出现的位置。如果找到了子串x,则find()函数会返回该子串在y中的起始索引(位置),否则返回-1(或npos)表示未找到。当find()函数返回非-1值时,说明找到了子串x,此时计数器cnt加1,表示找到了一次子串。**更新下一次查找的起始位置为当前找到子串末尾的下一个字符的位置,即n = y.find(x, n) + 1。**

画了个图 字不怎么好看(哈哈哈哈!):
在这里插入图片描述

// 小技巧  统计一个单词 在一段文中出现的次数
// find()
#include <iostream>
#include <algorithm>
using namespace std;string x,y;int main()
{getline(cin,x);getline(cin,y);x=' '+x+' '; // 因为连起来的不算,所以要在前后加几个空格y=' '+y+' ';//将所有大写字母转为小写__根据题目来改写for(int i=0;i<x.size();i++)x[i] = tolower(x[i]);for(int i=0;i<y.size();i++)y[i] = tolower(y[i]);int cnt = 0,n = 0;// 统计单词出现次数while(y.find(x,n)!=-1)//find找不到会返回npos也就是-1 {	cnt++;n=y.find(x,n)+1;	}cout<<cnt<<endl;return 0;
}/*
he
gnk HE kfmbkhe tinbitnbHe gnjbohe he gknbk He fbi hE
*/

最后为了可以提高效率 我们可以把这个功能封装成一个函数:

#include <iostream>
#include <algorithm>
#include <string>using namespace std;int find_str(string x, string y)
{int cnt = 0, n = 0;for (int i = 0; i < x.size(); i++)x[i] = tolower(x[i]); //所有大写转小写for (int i = 0; i < y.size(); i++)y[i] = tolower(y[i]);x = ' ' + x + ' ';y = ' ' + y + ' '; //去空格 因为单词连起来的不算while (y.find(x, n) != -1){cnt++;n = y.find(x, n) + 1; //+1 从当前位置+1 继续查找}return cnt;
}int main()
{string x, y;getline(cin, x);getline(cin, y);int cnt = find_str(x, y);cout << "该单词 总共出现:" << cnt << "次" << endl;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DHTMLX Spreadsheet v5.1.1 Crack

DHTMLX Spreadsheet 5.1 具有新主题、简化的数字格式本地化、与框架的实时集成演示等 推出 DHTMLX Spreadsheet v5.1。新版本提供了一组有用的功能&#xff0c;这对开发人员和最终用户都有吸引力。 首先&#xff0c;新的电子表格版本提供了 4 个内置主题&#xff0c;可以根据您…

VS2022 创建windows服务-Windows Service

vs2022 2023等版本出现&#xff0c;似乎被忘记的早期的Windows Service服务是如何创建的呢&#xff1f;本文介绍了如何用新版本VS进行C#创建、安装、启动、监控、卸载简单的Windows Service 的内容步骤和注意事项。windows服务可以在windows中自动运行。 一、创建一个Windows …

Netty实战(待完善)

Netty组件 1. Bootstrap, ServerBootstrap Netty 中 Bootstrap 类是客户端程序的启动引导类&#xff0c;ServerBootstrap 是服务端启动引导类。 2. NioEventLoop, NioEventLoopGroup NioEventLoop 中维护了一个线程和任务队列&#xff0c;支持异步提交执行任务&#xff0c;…

全面开花!聚铭网络入选《ISC 2023数字安全创新能力全景图谱》10大细分领域

日前&#xff0c;《ISC 2023数字安全创新能力全景图谱》重磅出炉&#xff0c;聚铭网络凭借多元化的产品和卓越的创新能力&#xff0c;成功上榜全景图10大细分领域&#xff0c;多项细分领域的入围再一次彰显了聚铭网络过硬的综合安全实力。 据悉&#xff0c;此次全景图是ISC平台…

修改选择框el-select样式,显示及下拉样式

修改选择框el-select样式,显示及下拉样式 .el-input__inner {background: rgba(25, 126, 195, 0.2);border: none;color: #fff; }.el-select-dropdown {background: rgba(19, 73, 104, 0.79);border: 2px solid #48e3ff;border-radius: 0; }.el-popper .popper__arrow {display…

厦门大学OpenHarmony技术俱乐部开创“1+N”新模式,加速推动产学研融合

12月29日,OpenHarmony技术俱乐部再添重将——在多方见证下,厦门大学OpenHarmony技术俱乐部在翔安校区益海嘉里楼报告厅正式揭牌成立,现场出席领导及师生代表近千人。 成立仪式现场 OpenHarmony技术俱乐部 携手厦门大学共绘开源生态新图景 OpenHarmony是由开放原子开源基金…

可视化工作流任务管理

​Leangoo领歌一款永久免费的看板管理工具。提供私有部署。 Leangoo领歌覆盖了敏捷研发全流程&#xff0c;它提供端到端敏捷研发管理解决方案&#xff0c;包括小型团队敏捷开发&#xff0c;规模化敏捷SAFe&#xff0c;Scrum of Scrums大规模敏捷&#xff0c;涵盖敏捷需求管理、…

OpenFeign相关面试题及答案(2024)

1、什么是OpenFeign&#xff0c;它如何简化远程服务调用&#xff1f; OpenFeign是一个声明式的Web服务客户端&#xff0c;它使得编写HTTP客户端变得更加容易。它属于Spring Cloud Netflix项目的一部分&#xff0c;可以与Spring Boot应用轻松集成。通过使用OpenFeign&#xff0…

JavaFX:MVC模式学习01-使用PropertyValueFactory将模型与视图绑定

PropertyValueFactory类是“TableColumn cell value factory”,绑定创建列表中的项。示例如下&#xff1a; TableColumn<Person,String> firstNameCol new TableColumn<Person,String>("First Name");firstNameCol.setCellValueFactory(new PropertyVal…

three.js使用正方体加图片实现全景看房效果

three.js使用正方体加图片实现全景看房效果 实现方法 创建一个正方体加载6张纹理贴图正方体z轴缩放-1调整相机位置 图例 代码 <template><div class"app"><div ref"canvesRef" class"canvas-wrap"></div></div&g…

智能分析网关V4如何在播放时设置是否显示算法区域?具体操作是什么?

AI智能分析网关V4是TSINGSEE青犀视频旗下的一款高效的边缘计算分析网关&#xff0c;可实现人体行为检测、车辆事件检测、环境卫生检测与消防事件检测等&#xff0c;广泛应用在工地、工厂、园区、楼宇、校园、仓储等场景中。将智能分析网关V4结合我们的视频融合平台EasyCVR一起使…

使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c

文章目录 前言一、前期准备1、所需文件2、编译环境 二、创建工程三、解决编译报错四、测试 ffmpeg.c 前言 本文使用官方发布的 SDK 开发包来亲手编译 ffmpeg.c 文件&#xff0c;编译成功后可以对其内部的源码按照我们的需求进行修改&#xff0c;为后面的转码器的开发做个铺垫。…