【NOIP2018普及组】标题统计 - 关于字符的不同的读入方法

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

评测地址:http://code.qingtengbc.com/problem/3

本题考察知识点
C++字符及字符串读入方式,cin,getline,scanf,getchar()的使用等

算法分析
本题重点考察C++的几种读入方式,虽然数据读入是编程中最近基本的内容,但是想要完成掌握透彻还是一件比较难的事情。以下是本题基于cin,getline,scanf和getchar()的四种解法。

解法一
我们先看cin的使用,如果真正了解cin的同学,那么就可以知道cin是自动忽略换行和回车的,那么如果我们能用cin读入一个字符,必然不是换行和回车,则可以给总的字符数加1。

在这里插入图片描述

解法二
如果是使用getline,那么我们可以把整一行的字符串(包含空格)都读入进来, 这是getline的功能,然后循环一遍整个字符串,把空格过滤掉即可。

在这里插入图片描述

解法三
如果是使用scanf读入一个一个的字符,那么空格和回车在内的所有字符都可以读入,因此我们可以用scanf读入每一个字符,然后过滤掉空格和回车即可。注意scanf来自c的语法,需要使用头文件cstdio

在这里插入图片描述

解法四
如果使用getchar(),那么也是一个一个获取字符,然后过滤掉空格和回车,类似于scanf的用法。

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章