华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1059|回复: 1
打印 上一主题 下一主题

P5015 标题统计

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2019-3-16 14:58:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目描述
凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时,空格和换行符不计算在内。

输入输出格式
输入格式:
输入文件只有一行,一个字符串 s。

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

输入输出样例
输入样例#1:
234
输出样例#1:
3
输入样例#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,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。
回复

使用道具 举报

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
沙发
 楼主| 发表于 2019-10-20 20:01:37 | 只看该作者
统计有效字符的数目还好说,这道题的主要难点在于如何把这个含有空格标题读进进去。
有两种方法:一个是使用getline(cin,s)这个函数,另外一个是使用while(cin>>x)这种形式。
想想在哪里还看到了这种读入的方法(乒乓球)
  1. #include <iostream>
  2. using namespace std;
  3. string s;
  4. int main()
  5. {
  6.     getline(cin,s);
  7.     int l=s.size();
  8.     int sum=0;
  9.     for (int i=0;i<=l-1;i++)
  10.         if (s[i]!=' ') sum++;
  11.     cout<<sum;
  12.     return 0;
  13. }
复制代码


  1. #include<iostream>
  2. using namespace std;
  3. char x;
  4. int s;
  5. bool isok(char x)
  6. {
  7.         bool b1=(x>='A' && x<='Z');
  8.         bool b2=(x>='a' && x<='z');
  9.         bool b3=(x>='0' && x<='9');
  10.         return b1||b2||b3;
  11. }
  12. int main()
  13. {
  14.         while (cin>>x) if (isok(x)) s++;
  15.         cout<<s;
  16.         return 0;
  17. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 02:24 , Processed in 0.103400 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表