洛谷刷题——字符串——P1308统计单词数 总结

题目

P1308 [NOIP2011 普及组] 统计单词数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

学习/复习到的知识点

1.getline(cin,a)

getline()输入一行文本,且丢弃换行符,即换行符不留在缓冲区中

若用cin,则没有丢弃换行符,故需用getchar()读入多余的换行符

2.transform函数

C++中的transform()函数_c++ transform_东北某985机械转CS工科男一枚的博客-CSDN博客

语法:

transform(first,last,result,op); 
//first为容器的首迭代器,last为容器的末迭代器,result为存放结果的容器的首迭代器
//op为要进行操作的医院函数对象或struct或class

本题目用到的为将大写字母全部转化为小写字母,代码如下:

transform(a.begin(),a.end(),a.begin(),::tolower);

其中,tower()函数是将大写字母全部转换成小写字母的函数。

也可以自己写一个函数,参数是源容器的数据,结果返回到目标容器中

3. ::pos

C++中string::npos的一些用法总结_c++ string::npos_木顶思上的博客-CSDN博客

::pos是一个常数,表示size_t的最大值,许多容器提供这个值,表示不存在的位置

本题用法:

和 find()结合使用,表示到了字符串的结尾

if(b.find(a)==string::npos) cout<<"-1"<<endl;

4.字符串的find()函数

C++ find函数详解_c++ find_番茄猫番茄猫的博客-CSDN博客

size_t find (const string& str, size_t pos = 0) const;
size_t find (const char* s, size_t pos = 0) const;
size_t find (const char* s, size_t pos, size_t n) const;
size_t find (char c, size_t pos = 0) const;

其中,str为要查找的子串;s为要查找的字符数组;c为要查找的字符;pos为查找的起始位置;n为要查找的字符个数。

如果查找成功,find()函数返回子串或字符在字符串中第一次出现的位置;否则,返回一个特殊值string::npos,表示查找失败。

而本题中主要用到的是find(str,pos),以此依次查找子串并计数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云霄星乖乖的果冻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值