题解 P5015 【标题统计】
既然这个题这么水
大家不如来盘点一下算法呗
首先说一个事:逗号表达式
这玩意的值是最后一个表达式的值
那么我们就可以愉快的放进循环条件里摩擦
话说这个应该是基础吧,大多数代码都可以这样干
具体可以后面看代码(会有注释)
好的,下面是正题(真·不正)
方法一:getchar法
(相当于cin.get(a))
这个知识点在我的题解里:
https://www.luogu.org/blog/jelly123/solution-p1200
代码:(getchar)
#include <cstdio>
using namespace std;
int main()
{
char a;int s=0;
while(a=getchar(),a!='\n')
{//↑就是了,循环先输入后判断,真香QWQ
if (a!=' ')
{
s++;
}
}
printf("%d",s);
return 0;
}
好了,我们暂且撤离,看看cin.get()版:
#include <cstdio>
using namespace std;
int main(){char a;int s=0;
while(cin.get(a),a!='\n')if (a!=' ')s++;
cout<<s;
return 0;}
方法二:getline法
这个方法小心食用
#include <iostream>
#include <cstring>
using namespace std;
int main(){int count=0,i=0;string input;
getline(cin,input);
for (i=0;i<input.size();i++){
if (input[i]!=' '&&input[i]!='\n')count++;}
cout<<count;return 0;}
//为了缩短长度,将就着看吧
但是cin.getline还没研究出来...
(真是一个蒟蒻啊QAQ)
方法三:gets法
这个方法必须小心(作死)使用!!!
@shm124
感谢这位同学提供的for循环里的核心
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main(){int ans=0,i=0;char s[8];
memset(s,0,sizeof(s));gets(s);
for(int i=0;i<8;i++)
if(s[i]>='A'&&s[i]<='Z')ans++;
if(s[i]>='a'&&s[i]<='z')ans++;
if(s[i]>='0'&&s[i]<='9')ans++;
cout<<ans;return 0;}
好的,我们现在有了几种基础方法,那能不能看看题...
没错,5个字符,直接顺序不就好了吗...
所以...
方法四:顺序结构硬输入法!!!
@Lhc_fl 真鸡贼啊
#include<bits/stdc++.h>
using namespace std;
int main(){
int ans=0;
char c;
if(cin>>c)ans++; //cin自动去除空格换行
if(cin>>c)ans++; //cin在读不到数据时返回0
if(cin>>c)ans++;
if(cin>>c)ans++;
if(cin>>c)ans++;
cout<<ans;
}
经过了这么多蒟蒻做法(打卡),
不如来看看库函数之类的蹭一蹭...
方法五:库函数摩擦法(附加迭代)
感谢dalao@黄H睿R %%%
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
string st;
int ans;
int main()
{
getline(cin,st);
for(string::iterator it=st.begin();it!=st.end();it++)//使用迭代器
if(isalnum(*it))
ans++;
cout<<ans;
return 0;
}
方法五里面:#include是库函数的库,
库函数是isalnum(*it),没错,一开始我没有加上...
然而我们的方法并没有完...
彩蛋一:
#include<iostream>
using namespace std;
int ans=0;
char s;
int main()
{
while(cin>>s)if(s!=' ') ans++;
cout<<ans<<endl;
return 0;
}
强制输入...注意win 系统下调试
((ctrl+z)+enter)×2即可..
彩蛋二:
现在我们的c++更新真快啊..
合并都只需要+-了吗?!
然而是的...
@Nova_守门员
你的题解我进行了优化,主函数真是简单
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
string input()
{
char ch;
string str="";
ch=getchar();
while(ch!='\n')
{
if (ch!=' ')str+=ch;
ch=getchar();
}
return str;
}
int main()
{
string s;
s=input();
cout<<s.size();
}
好了,就说这么多(真少)
有什么问题请评论...
纯知识点整理贴(放心,真人测试可AC)
蒟蒻求过,辛苦到家
题解 P5015 【标题统计】的更多相关文章
- P5015 标题统计
P5015 标题统计 ‘ ’ 不等于空格,空格是个字符 代码: #include<iostream> #include<cstdio> #include<cmath& ...
- NOIP2018普及T1暨洛谷P5015 标题统计 题解
题目链接:https://www.luogu.org/problemnew/show/P5015 分析: 这道题大概是给个签到分吧.很显然的字符串操作.本篇题解主要帮助初学者,请大佬略过. 首先给大家 ...
- 『题解』洛谷P5015 标题统计
题意描述 给你一个字符串,求所有字符的总数. 字符只包含数字,大小写字母. 分析 字符串的长度还是\(\le5\)的. 直接枚举就可以了. AC代码: NOIP官方标准程序是这样的 #include ...
- 洛谷 P5015 标题统计
第一道题很简单,标签:字符串.模拟. 只需要一个判断去除空格就对了: if(a[i]!=' ' && a[i]!='\n') v++; code: #include<iostre ...
- [题解]NOIP2018(普及组)T1标题统计(title)
NOIP2018(普及组)T1标题统计(title) 题解 [代码(AC)] #include <iostream> #include <cstdio> #include &l ...
- [Noip 2018][标题统计 龙湖斗 摆渡车 对称二叉树]普及组题解
啊喂,都已经9102年了,你还在想去年? 这里是一个Noip2018年PJ第二题打爆的OIer,错失省一 但经过了一年,我学到了很多,也有了很多朋友,水平也提高了很多,现在回看当时: 今年的Noip ...
- 【洛谷p5015】标题统计
(写上瘾了再来一篇吧) 标题统计[传送门] 洛谷算法标签 字符串这种东西,我看到是崩溃的.因为我们只学到了二维数组[这个梗自行get],总之我们当时还没有学.然后显然就是各种翻书,各种百度.大致了解了 ...
- 洛谷 题解 P5015 【标题统计】 NOIP2018 普及组 T1
没有人用 scanf("%c", &ch) != EOF 吗? scanf 和 EOF 会伤心的. 思路:逐个读入字符,遇到EOF中止,对于每个读入的字符进行判断. 附上考 ...
- 【NOIP2018】标题统计-C++
描述 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大.小写英文字母.数字字符.空格和换行符.统计标题字符数时,空格和换行符不计算在内. 输入 输入文件名为 tit ...
随机推荐
- html模板 练习(仿照抽屉网)
1.页面布局 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 【LG3236】[HNOI2014]画框
[LG3236][HNOI2014]画框 题面 洛谷 题解 和这题一模一样. 将最小生成树换成\(KM\)即可. 关于复杂度,因为决策点肯定在凸包上,且\(n\)凸包的期望点数为\(\sqrt {\l ...
- SSM-CRUD实战
前端最容易出现缓存问题,所以以后每次都必须完全在idea加载完后,再在浏览器端多 执行 ctrl+F5 索要最新copy 这样就能拿到最新的改动了,就不会出现各种代码没问题但是功能就是实现不了的问题 ...
- 详解UML图之类图
产品经理的必备技能之一是画UML图,本文就告诉你怎么画标准的类图吧.本文结合网络资料和个人心得所成,不当之处,请多指教. 1.为什么需要类图?类图的作用 我们做项目的需求分析,最开始往往得到的是一堆文 ...
- Maven学习(五)-----如何从Maven远程存储库下载?
如何从Maven远程存储库下载? 根据 Apache Maven 的说明: Downloading in Maven is triggered by a project declaring a dep ...
- 180730-Spring之RequestBody的使用姿势小结
Spring之RequestBody的使用姿势小结 SpringMVC中处理请求参数有好几种不同的方式,如我们常见的下面几种 根据 HttpServletRequest 对象获取 根据 @PathVa ...
- JVM自动内存管理机制--读这篇就GO了
之前看过JVM的相关知识,当时没有留下任何学习成果物,有些遗憾.这次重新复习了下,并通过博客来做下笔记(只能记录一部分,因为写博客真的很花时间),也给其他同行一些知识分享. Java自动内存管理机制包 ...
- JAVA基础学习之路(十二)链表
定义链表的基本结构: class Link {//外部类 //内部类,只为链表类服务 private class Node {//定义节点类 private String data;//保存的数据 p ...
- Open vSwitch for CentOS
原文发表于cu:2016-06-02 本文属于重发,ovs当前的安装方式可能略有不同. 参考文档: 官方文档: http://openvswitch.org/support/dist-docs-2.5 ...
- JAVA学习笔记--迭代器
迭代器(Iterator)是一种设计模式.它是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构.创建迭代器的代价小,因而迭代器通常被称为轻量级对象. 一.Ite ...