首页 > 其他分享 >P5015 [NOIP2018 普及组] 标题统计

P5015 [NOIP2018 普及组] 标题统计

时间:2024-01-23 18:24:27浏览次数:34  
标签:字符 普及 换行符 int 样例 NOIP2018 空格 P5015 include

1.题目介绍

[NOIP2018 普及组] 标题统计

题目背景

NOIP2018 普及组 T1

题目描述

凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字符数时,空格和换行符不计算在内。

输入格式

输入文件只有一行,一个字符串 \(s\)。

输出格式

输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。

样例 #1

样例输入 #1

234

样例输出 #1

3

样例 #2

样例输入 #2

Ca 45

样例输出 #2

4

提示

样例 1 说明

标题中共有 3 个字符,这 3 个字符都是数字字符。

样例 2 说明

标题中共有 $ 5$ 个字符,包括 \(1\) 个大写英文字母, \(1\) 个小写英文字母和 \(2\) 个数字字符, 还有 \(1\) 个空格。由于空格不计入结果中,故标题的有效字符数为 \(4\) 个。

数据规模与约定

规定 \(|s|\) 表示字符串 \(s\) 的长度(即字符串中的字符和空格数)。
对于 \(40\%\) 的数据,\(1 ≤ |s| ≤ 5\),保证输入为数字字符及行末换行符。
对于 \(80\%\) 的数据,\(1 ≤ |s| ≤ 5\),输入只可能包含大、小写英文字母、数字字符及行末换行符。
对于 \(100\%\) 的数据,\(1 ≤ |s| ≤ 5\),输入可能包含大、小写英文字母、数字字符、空格和行末换行符。

2.题解

2.1 使用cin自动去除空格

思路

cin会在遇到空字符停止读入,我们就可以不断利用cin读入字符串并统计长度即可

代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
	string str;
	int length = 0;
	while(cin >> str){
		length += str.length();
	} 
	cout << length;
}

2.2 使用getline(字符串读法)读取一行

思路

读入一行字符串,然后排除掉其中的空格和换行符即可

代码

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
string a;   // 字符串操作
int ans=0;
int main()
{
    getline(cin,a);  // 整行读入 串
    for(int i=0;i<a.size();i++)
        if(a[i]!=' ' && a[i]!='\n') ans++;   // 排除非法即合法  
    cout<<ans<<'\n';
    return 0;
}

2.3 使用gets(字符数组读法)读取一行

思路

思路跟上方一样,主要是使用字符数组和gets函数

代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
using namespace std;
char s[10];   //  字符数组  s[0]  s[1]  s[2]   ....  s[4]
int ans=0;
int len;
int main()
{
    gets(s);   // 把数据存放到 s字符数组   234    ————> s[0]='2' s[1]='3' s[2]='4'
    len=strlen(s);   // len: 计算 读入的字符数量  len=3

    for(int i=0;i<len;i++)    // 循环  查找判断  s[0]  ----   s[strlen(s)-1] 
    {                         //一定要从0开始!!!
      if(s[i]!=' ' && s[i]!='\n') ans++;
    }
    printf("%d",ans);   // ans : 统计有多少合法字符 
    return 0;
}

标签:字符,普及,换行符,int,样例,NOIP2018,空格,P5015,include
From: https://www.cnblogs.com/trmbh12/p/17983096

相关文章

  • P1047 [NOIP2005 普及组] 校门外的树
    1.题目介绍[NOIP2005普及组]校门外的树题目描述某校大门外长度为\(l\)的马路上有一排树,每两棵相邻的树之间的间隔都是\(1\)米。我们可以把马路看成一个数轴,马路的一端在数轴\(0\)的位置,另一端在\(l\)的位置;数轴上的每个整数点,即\(0,1,2,\dots,l\),都种有一棵树。由......
  • (区间覆盖问题)P5019 [NOIP2018 提高组] 铺设道路和Educational Codeforces Round 158 (
    区间覆盖问题这里EducationalCodeforcesRound158(RatedforDiv.2)b题和[NOIP2018提高组]铺设道路两道典型题目,本质是相同的。这里由于题目多次出现,特此记录。解题思路:首先我们得对区间做划分,那么划分思路可以是从小到大也可以是从大到小的异常点来做划分(我这是由大到......
  • P10073 [GDKOI2024 普及组] 刷野 II 的题解
    P10073[GDKOI2024普及组]刷野II的题解谨以此篇题解记录我考场上唯一通过的一题~解题思路可以考虑定义两个指针x和y,分别为左侧攻击到哪里和右侧。此时,从两侧线性想中间递推,若先打左边的代价小就打左边的,否则就打右边的。按照这个方法向中间推就可以了。Code#include<......
  • Luogu P1042 [NOIP2003 普及组] 乒乓球
    [NOIP2003普及组]乒乓球\(link\)题目背景国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中\(11\)分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图......
  • [NOIP1998 普及组] 三连击
    [NOIP1998普及组]三连击题目背景本题为提交答案题,您可以写程序或手算在本机上算出答案后,直接提交答案文本,也可提交答案生成程序。题目描述将共个数分成组,分别组成个三位数,且使这个三位数构成的比例,试求出所有满足条件的个三位数。输入格式无输出格式若干行,每行个......
  • 洛谷题单指南-模拟和高精度-P1067 [NOIP2009 普及组] 多项式输出
    原题链接:https://www.luogu.com.cn/problem/P1067题意解读:模拟法依次输出多项式内容即可,但是需要考虑的周全,主要有以下关键点:1、系数为0时不输出多项式2、第一个符号,只有负号才输出3、次数不为0时,不输出为1的系数;次数为0时,输出所有系数4、次数为1时,不输出次数;次数为0时不输......
  • [NOIP2007 普及组] 守望者的逃离
    [NOIP2007普及组]守望者的逃离题目背景NOIP2007普及组T3题目描述恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去。到那时,岛......
  • 洛谷题单指南-模拟和高精度-P1042 [NOIP2003 普及组] 乒乓球
    原题链接:https://www.luogu.com.cn/problem/P1042题意解读:分别针对11分制和21分制,输出每局比分。只需要判断一局的结束条件:得分高者如果达到11或者21,且比分间隔大于等于2分,则表示一局结束,可开始下一局,用模拟法即可解决。100分代码:#include<bits/stdc++.h>usingnamespaces......
  • P1010 [NOIP1998 普及组] 幂次方(十进制转二进制)(递归)
    P1010[NOIP1998普及组]幂次方个人感想终于能真正自主解决一道纯递归题目了,完成前面那次P1928外星密码的遗憾了十进制转化二进制再处理也顺利搞定(之前洛谷月赛就有相似题目,当时觉得很难就没写,太亏了)十进制转二进制样例:inta[]while(n!=0){ if(n%2==1){ a......
  • [Luogu] P1058 [NOIP2008 普及组] 立体图
    P1058[NOIP2008普及组]立体图模拟赛时候要是做出来这题就能拿饮料了:(题目传送门思路先打个输出长方体的函数:(其中\((x,y)\)表示该长方体的左上角)voiddraw(intx,inty){c[x][y+2]='+';c[x][y+6]='+';c[x+2][y]='+';c[x+2][y+4]='+';c[x+5][y]='+';c[x+5]......