华师一附中OI组

标题: P5015 标题统计 [打印本页]

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

输入输出格式
输入格式:
输入文件只有一行,一个字符串 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,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。
作者: admin    时间: 2019-10-20 20:01
统计有效字符的数目还好说,这道题的主要难点在于如何把这个含有空格标题读进进去。
有两种方法:一个是使用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. }
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2