机试 | STL | string | 统计单词数

article/2025/7/13 3:30:18

题目:

P1308 [NOIP 2011 普及组] 统计单词数 - 洛谷

输入 

输入格式

共 2 行。

第 1 行为一个字符串,其中只含字母,表示给定单词;

第 2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

  • 第二行的输入一个包含字母和空格的字符串,cin做不到,cin读取时,从键盘上输入的每个数据之间必须用空格或 Enter 键分开。所以最后虽然输入一行,但是只会接收第一个空格前面的内容赋值给变量。
//#include<bits/stdc++.h>
#include<iostream>
#include<string>
using namespace std;int main()
{string word;//给定的单词string content;//文章cin >> word;cin >> content;cout << word << endl;cout << content << endl;return 0;
}

 可以看到word变量只接收了一个单词(to)

所以需要用到/n作为结束,但是cin和getline一起使用的时候,需要注意对cin输入结束后未丢弃的/n进行处理 

  • cin遇到'\n'结束,但不会丢弃'\n',而getline默认遇到‘\n’结束。因此需要处理cin残留的'\n'。
  • getline遇到结束符后会结束输入并抛弃结束符。
//#include<bits/stdc++.h>
#include<iostream>
#include<string>
using namespace std;int main()
{string word;//给定的单词string content;//文章cin >> word;getline(cin, content);cout << word << endl;cout << content << endl;return 0;
}

 可以看到,在控制台上没有出现getline()的输入提示,而直接跳过。

可以在上面再使用一次getline()处理/n

或者使用getchar(以回车符作为结束标志)处理/n

//#include<bits/stdc++.h>
#include<iostream>
#include<string>
using namespace std;int main()
{string word;//给定的单词string content;//文章cin >> word;getchar();getline(cin, content);cout << word << endl;cout << content << endl;return 0;
}

//#include<bits/stdc++.h>
#include<iostream>
#include<string>
using namespace std;int main()
{string word;//给定的单词string content;//文章cin >> word;getline(cin,content);getline(cin, content);cout << word << endl;cout << content << endl;return 0;
}

 完整代码

//#include<bits/stdc++.h>
#include<iostream>
#include<string>
using namespace std;int main()
{string word;//给定的单词string content;//文章cin >> word;getline(cin,content);//处理cin残留的/ngetline(cin, content);//把单词和句子全部转换为小写for (int i = 0; i < word.size(); i++){if (word[i] >= 'A' && word[i] <= 'Z'){word[i] = word[i] + 'a' - 'A';}}for (int i = 0; i < content.size(); i++){if (content[i] >= 'A' && content[i] <= 'Z'){content[i] = content[i] + 'a' - 'A';}}//在单词和句子的前面和后面都加上空格进行匹配,可以处理部分匹配的情况word = " " + word + " ";content = " " + content + " ";int count=0;//计数,总共出现几次int first;//第一次出现的位置int pos = content.find(word);if (pos == -1){cout << -1 << endl;return 0;}int temp = pos;for (; pos!= -1;){count++;pos = content.find(word, pos+1);}cout << count << " " << temp << endl;return 0;
}

http://www.hkcw.cn/article/SBCJIoPwuj.shtml

相关文章

nginx源码下载和测试

官网&#xff1a;nginx 源码包&#xff1a; nginx-1.19.3.tar.gz 源码包下载&#xff1a; wget http://nginx.org/download/nginx-1.19.3.tar.gz -P /usr/src 进入官网 以1.27.5为例 第一步&#xff0c;创建nginx的文件夹 mkdir /usr/local/nginxcd ~ 第二步创立文件后拖入…

2025南师附中特长生考试 人工智能加试T1

题目描述 在 x □ 1 □ 2 □ 3 □ 4 □ 5 □ 6 □ 7 □ 8 □ 9 x\square1\square2\square3\square4\square5\square6\square7\square8\square9 x□1□2□3□4□5□6□7□8□9 的 □ \square □ 内填入 或 − - −. (1) 求证&#xff1a; 27 27 27 可以被这样表示&…

老旧设备数据采集破局 AI图像解析如何让质检LIMS系统焕发新生

在实验室数字化进程中&#xff0c;大量服役超过 10 年的老旧设备成为数据采集的 “拦路虎”&#xff1a;指针式仪表盘需人工读取、纸质原始记录靠手工录入、非标准接口设备数据无法自动获取…… 某化工实验室因 15 台老旧设备数据采集耗时占比达 40%&#xff0c;检测效率长期滞…

PyQt6基础_QCharts绘制饼状图

前置&#xff1a; PyQt6中没有QtCharts包&#xff0c;需要安装 pip install PyQt6-Charts 结果&#xff1a; 1 高亮内容固定突出&#xff0c;并显示文本 2 鼠标悬浮在其他扇区&#xff0c;临时突出显示并显示文本 代码&#xff1a; import sys from PyQt6.QtCore import Q…

Cache数据库的高可用架构设计与选择

一、Cache数据库的高可用架构 对于Cache数据库的高可用性最佳实践&#xff0c;官方提供了以下几种策略&#xff1a; 集成基于操作系统级HA软件以及搭配共享存储的故障转移集群 基于操作系统的HA软件&#xff0c;搭配共享存储的方案&#xff0c;Cache实例安装在共享存储中&#…

开源协议:构建全球技术协作的基石

文章目录 一、开源协议的本质与存在价值&#xff08;一&#xff09;开源协议的定义与法律属性&#xff08;二&#xff09;开源协议的历史演进&#xff08;三&#xff09;开源协议的核心价值 二、主流开源协议分类与核心特性&#xff08;一&#xff09;宽松协议&#xff08;Perm…

MySQL事务及其原理

事务是一组操作的集合&#xff0c;这组集合要么同时成功&#xff0c;要么同时失败 MySQL事务默认是自动提交的&#xff0c;也就是说每一条sql语句就是一条事务 查看/设置事务提交方式 关闭自动提交只有在其所在的查询窗口有效 select autocommit; --查看提交方式 SET autoc…

Spring生命周期中织入代理逻辑

在Spring生命周期中织入代理逻辑 一&#xff0c;AOP 自动代理的实现机制如何判断某个 Bean 是否需要被代理&#xff1f;代理对象在哪个生命周期节点创建&#xff1f; 二&#xff0c;底层实现逻辑1&#xff0c;自动代理的实现实例化AwareBeanPostProcessorSmartInstantiationAwa…

参数化建模(三):SOLIDWORKS中的参数化应用实例

在现代工程设计领域&#xff0c;参数化设计已成为提升设计效率、优化产品性能、实现智能制造的重要手段。尤其是在三维建模软件SOLIDWORKS中&#xff0c;参数化设计的理念和方法被广泛应用&#xff0c;极大地推动了机械、建筑、电子等行业的创新发展。 那么&#xff0c;什么是…

STM32G4 电机外设篇(二) VOFA + ADC + OPAMP

目录 一、STM32G4 电机外设篇&#xff08;二&#xff09; VOFA ADC OPAMP1 VOFA1.1 VOFA上位机显示波形 2 ADC2.1 用ADC规则组对板载电压和电位器进行采样 3 OPAMP&#xff08;运放&#xff09;3.1 结合STM32内部运放和ADC来完成对三相电流的采样3.2 运放电路分析 附学习参考…

KVM 安装 Ubuntu 22

在 KVM 中安装 Ubuntu 22 虚拟机。 首先创建硬盘文件 sudo qemu-img create -f qcow2 /app/vms/ubuntu22.qcow2 100G安装Ubuntu 22 sudo virt-install \--name ubuntu22 \--ram 4096 \--vcpus 2 \--disk path/app/vms/ubuntu22.qcow2,formatqcow2 \--os-type linux \--os-va…

【Python】第二弹:搭建 Python 环境

目录 一、安装 Python 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 二、安装 PyCharm 第一步:找到官方网站 第二步:找到下载页面 第三步:双击安装包 第四步:运行 hello world 三、PyCharm 基本设置 3.1 设置字体大…

城市内涝精准监测・智能预警・高效应对:治理方案解析

城市化进程加速与极端天气频发叠加&#xff0c;城市内涝对城市安全运行和居民生活的威胁日益凸显。多地频发的强降雨引发严重内涝&#xff0c;"看海"现象、交通瘫痪及财产损失等问题&#xff0c;暴露出传统内涝防治体系在监测精准度、预警及时性和应对高效性上的不足…

解决RAGFlow(v0.19.0)有部分PDF无法解析成功的问题。

ragflow版本为&#xff1a;v0.19.0 1.解析的时候报错&#xff1a;Internal server error while chunking: Coordinate lower is less than upper。 看报错怀疑是分片的问题&#xff0c;于是把文档的切片方法中的“建议文本块大小”数值&#xff08;默认512&#xff09;调小&…

IoTDB 集成 DBeaver,简易操作实现时序数据清晰管理

数据结构一目了然&#xff0c;跨库分析轻松实现&#xff0c;方便 IoTDB “内部构造”管理&#xff01; 随着物联网场景对时序数据处理需求激增&#xff0c;时序数据库与数据库管理工具的集成尤为关键。作为数据资产的 “智能管家”&#xff0c;借助数据库管理工具的可视化操作界…

比较二维结构的尺寸分布

在行列可自由变换的平面上5点结构有34个 其中尺寸在3*3范围内的有7个 在4*4范围内的有14个 在5*5范围内的有13个 现在假设平面上有5个不可分辨的点在随机的运动&#xff0c;这5个点可能的位置关系就只有这34种。现在假设点与点之间的距离是稳定不变的的,且每个状态只出现一次。…

WSL里执行python深度学习的一些方法记录

安装anaconda3&#xff1a; 可以直接从 Download Now | Anaconda 中下载&#xff0c;然后拷贝到WSL环境的某个目录&#xff0c;执行 bash xxxxxxx.sh 即可安装。 启动jupyter notebook&#xff1a; 先conda activate 当前环境&#xff0c;然后pip install jupyter 此时&am…

防爆组合式智能全温振荡防爆培养箱,守护安全场所

品牌&#xff1a;宇晶峰 型号&#xff1a;BGZ-929PY-03ZC 使用温度&#xff1a;4~60C 温度分辨率/波动度/分布精度&#xff1a;0.1C/0.5C/1C(38C时) 回旋幅度/回旋频率范围(r/min&#xff09;&#xff1a;Φ26mm(选配Φ50mm)/30~300(选配5~400) 回旋频率…

如何选择适合的冲压件清洗机?冲压件清洗机的选购指南

冲压件清洗机是工业生产中不可或缺的设备之一&#xff0c;主要用于去除冲压过程中产生的油污、灰尘、碎屑等污染物&#xff0c;确保冲压件的清洁度和质量。适当选择合适的冲压件清洗机对于提高生产效率、降低成本以及保证产品质量都具有重要意义。以下是一份关于如何选择适合的…

2023-2024-2-《移动机器人设计与实践》上机测评

2022-2023-2-移动机器人设计与实践-期末A-CSDN博客 2022-2023-2-移动机器人设计与实践-期末B-CSDN博客 理论和实践分开测评&#xff0c;如下是实践部分 摘要&#xff1a; 《移动机器人设计与实践》期末上机测评要求学生完成配置题和实践题两部分。配置题&#xff08;30分&am…