题目


AC代码

#include<bits/stdc++.h>
using namespace std;
int main()
{string str,s1;int ans=0,pos,index=0;getline(cin,s1); getline(cin,str);//读取空格,不读取回车 int l=s1.length();int len=str.length();for(int i=0;i<len;i++)str[i]=tolower(str[i]);for(int i=0;i<l;i++)s1[i]=tolower(s1[i]);str=' '+str+' ';s1=' '+s1+' ';while(str.find(s1,index) != string::npos){index = str.find(s1,index) + s1.size() - 1;ans++;}if(ans!=0)cout<<ans<<" "<<str.find(s1)<<endl;elsecout<<"-1"<<endl;return 0;
}

解题思路+注意事项

1.首先观察这个题目的时候,我们的输入中是有空格的,那我们就要想到学过的,输入可以允许读取空格的几种方式:

借鉴了大佬的文章

原文链接点这里

字符串输入:
string str; scanf("%s",str);//不读取空格,不读取回车
gets(str);//读取空格,读取回车
cin>>str;//不读取空格, 不读取回车
getline(cin,str);//读取空格,不读取回车
字符输入
char ch;
cin>>ch;//不读取回车
scanf("%c",&ch);//读取回车

1)cin>>接受一个字符串,遇“空格”、“Tab”、“回车”都结束

2)gets不能读取string类型的字符串。

3)会读取空格的就gets和getline

string str;

getline(cin,str);//可以读取空格,但是不能读取换行;

4)cin.getline() // 接受一个字符串,可以接收空格并输出

5)cin.get(字符数组名,接收字符数)用来接收一行字符串,可以接收空格

cin.get(字符变量名)可以用来接收字符。

2.要注意他是区分大小写的,所以我们先把s1(短短的)和str(那个长的)同时转化为大写或者都转化为小写,

​
for(int i=0;i<len;i++)str[i]=tolower(str[i]);for(int i=0;i<l;i++)s1[i]=tolower(s1[i]);//这里用tolower()或者toupper()都可以的;
//但是注意要一个字符一个字符的去转化;
for(int i=0;i<len;i++)str[i]=toupper()(str[i]);for(int i=0;i<l;i++)s1[i]=toupper()(s1[i]);​

3.寻找短的s1在 str 中出现的次数,这里想到用string::npos

string::npos参数 —— npos 是一个常数,用来表示不存在的位置

例如,有两个字符串a、b,判断a字符串是否包含b字符串

//如果字符串不存在包含关系,那么返回值就一定是npos
if(a.find(b)!=string::npos==1){cout<<"yes"<<endl;
}else{cout<<"no"<<endl;
}

所以利用这个可以来统计次数,即:

while(str.find(s1,index) != string::npos){index = str.find(s1,index) + s1.size() - 1;ans++;}

4.这里也用到了find()函数:

str1.find(str2, 5)的含义:

//从字符串str1下标5开始,查找字符串str2 ,返回str2在str1中的下标
string str1="abcdefg";
string str2="abc";
pos=str1.find(str2,5);
cout<<pos<<endl;

上面的index变量,就是不断更新下标继续往后面找,看str中是否还含有s1,并且统计,最后输出结果。

NOIP2011 统计单词数(通俗易懂版本)相关推荐

  1. 信息学奥赛一本通 1400:统计单词数 | 1954:【11NOIP普及组】统计单词数 | OpenJudge NOI 1.12 05 | 洛谷 P1308 [NOIP2011 普及组] 统计单词数

    [题目链接] ybt 1400:统计单词数 ybt 1954:[11NOIP普及组]统计单词数 OpenJudge NOI 1.12 05:统计单词数 洛谷 P1308 [NOIP2011 普及组] ...

  2. Bailian4030 统计单词数【文本处理】

    4030:统计单词数 总时间限制: 1000ms 内存限制: 65535kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...

  3. JSK-27321 统计单词数【字符串】

    统计单词数 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在 ...

  4. Python:读出文本本件,统计单词数输出;读出文本文件,随机输出其中的10个单词

    #读出文本本件,统计单词数输出:读出文本文件,随机输出其中的10个单词 import re import random f=open("this.txt","r" ...

  5. 1750: 统计单词数(某个单词出现次数)

    zcmu: 1750: 统计单词数 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 379 Solved: 74 [Submit][Status][Web ...

  6. 统计单词数(洛谷-P1308)

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

  7. Python:7-3 统计单词数-应用 (10分)

    在需要统计若干段文字(英文)中的单词数量,并且还需统计每个单词出现的次数. 注1:单词之间以空格(1个或多个空格)为间隔. 注2:忽略空行或者空格行. 要求: 统计前,需要从文字中删除指定标点符号!. ...

  8. [ZCMU OJ]1750: 统计单词数(字符串处理/find运用)

    Description 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你 ...

  9. TZOJ 4865 统计单词数(模拟字符串)

    描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的 ...

最新文章

  1. Morph 3D拥有近千名艺术家,欲打造全球最大的VR虚拟化身服装库
  2. 方案 mysql 优点_mysql高可用方案分析
  3. 前端学习(2763):基本的数据绑定
  4. 【jupyter】notebook屏蔽warning信息输出
  5. Tomcat加载类机制 - 我们到底能走多远系列(14)
  6. SLAM_关于VIO中IMU预积分的讲解
  7. 阿里云中标“金关工程二期”大数据云项目,总金额8568万!(含标单)
  8. android播放swf文件
  9. 008_SSSS_ Improved Denoising Diffusion Probabilistic Models
  10. 网络传输的两种方式——同步传输和异步传输的区别
  11. sql server 参数探测(Parameter Sniffing)影响存储过程执行效率解决方案
  12. 微信小程序:微信商家券的领取
  13. 工程行业数字化采购商城平台提供科学采购决策,提高采购管理水平
  14. BDD测试框架Spock概要
  15. 【Matlab指纹识别】指纹识别匹配门禁系统【含GUI源码 587期】
  16. Python爬取豆瓣Top250电影排名
  17. Pushmail:这个可以有
  18. 存储单位的位(bit)、字节(Byte)、MB(兆位)之间的换算关系
  19. 学习记录---8255A简介及使用方法
  20. okhttp-OkGo(okhttp-util升级版)网络请求框架(一)

热门文章

  1. 为什么不直接使用MAC地址进行通信、为什么不直接使用IP地址通信
  2. linux查看那些服务器,查看linux服务器基本信息
  3. 上海wmc大会华为鸿蒙,华为河图亮相MWC21上海大会
  4. python series取值_pandas中的series数据类型
  5. show processlist 史上最全参数详解及解决方案
  6. 读书百客:《秋登巴陵望洞庭》赏析
  7. 为什么说买彩票是交智商税?
  8. Android textView文字渐变色设置
  9. 微信小程序模仿开眼视频app(三)——信息卡片瀑布流和分类
  10. 深度学习——attention机制