题解 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 ...
随机推荐
- dat类型文件入库后校验数据有问题
一.问题: dat或者txt文件入库后,字段进行正则校验报出不应该出现的错误 二.排查: (1)根据报出的错误,把错误日志中的字串单独提取出来,进行正则校验发现没有问题 (2)可以想到,要不是程序问题 ...
- Mysql本地安装多实例后启动遇到的问题
一.本文紧接上一篇[win10-MySql免安装版-安装/多实例] 在上一篇文章里,安装Mysql解压版后,复制多份到本地,实现了多实例的安装 在后续启动其它实例的时候会遇到一些问题,以下就是自己遇到 ...
- Session丢失——解决方案
先抄下别人的作业(原帖:http://www.cnblogs.com/zhc088/archive/2011/07/24/2115497.html) Session丢失已经是一种习以为常的问题了,在自 ...
- [FJOI2016]建筑师 斯特林数
早期作品,不喜轻喷. LG传送门 组合数与斯特林数的基本应用. 组合数 大家应该都熟悉它的表达式,但我们这里使用它的递推式会更加方便,下面推导组合数的递推式.设\(\binom{n}{m}\)表示在\ ...
- pandaboard es 制作SD启动卡OMAP4460
1. 本次使用的是chipsee的板子,带屏幕的,先把资料传到Ubuntu的共享目录下 2. 进入共享目录 /mnt/hgfs/ubuntu_share/pandboard_es_linux# 3. ...
- cogs2554 [福利]可持久化线段树
cogs2554 [福利]可持久化线段树 原题链接 每次修改复制一遍就行了... 1A!!! // It is made by XZZ #include<cstdio> #include& ...
- js文件上传库
收集了2个与具体UI库和框架无任何耦合的JS文件上传库:支持断点续传.支持npm安装. resumable.js fileapi
- dubbo常见的一些面试题
什么是Dubbo? Duubbo是一个RPC远程调用框架, 分布式服务治理框架 什么是Dubbo服务治理? 服务与服务之间会有很多个Url.依赖关系.负载均衡.容错.自动注册服务. Dubbo有哪些协 ...
- Centos安装Python3(自带pip和setuptools)
安装zlib相关依赖 解决zipimport.ZipImportError: can't decompress data和pip3 ssl证书问题 sudo yum -y install zlib* ...
- 【转】PHPCMS v9 自定义表单添加验证码验证
1. 在 \phpcms\templates\default\formguide\show.html 中添加验证码显示 <input type="text" id=&quo ...