zoukankan      html  css  js  c++  java
  • 1033 旧键盘打字(20 分)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?

    输入格式:

    输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 105​​ 个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,.-+(代表上档键)。题目保证第 2 行输入的文字串非空。

    注意:如果上档键坏掉了,那么大写的英文字母无法被打出。

    输出格式:

    在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。

    输入样例:

    7+IE.
    7_This_is_a_test.
    

    输出样例:

    _hs_s_a_tst
    
    //做这道题的时候,我和宝玉有同一种感觉,这道题我好像在哪里见过
    #include<iostream>
    using namespace std;
    int main(){
        string a,b,c;//a是坏键字符串,b是输入的字符串,c是应该输出的字符串
        getline(cin,a);//这里一定要用getline,因为他给你的字符串里面可能有空格之类的
        cin>>b;
        int m=0;
        int k=0;
        if(a.find('+')<a.length())m=1;//如果上档键坏了,就将m置为1
        for(int i=0;i<b.length();i++){
            if(a.find(b[i])<a.length())continue;//如果能在坏键字符串中找到b[i],不作处理
            else if(m==1&&b[i]>='A'&&b[i]<='Z')continue;//如果上档键是坏的,b[i]是大写字母,也不做处理
            else if(a.find(toupper(b[i]))<a.length())continue;//因为给的坏件是以大写字母形式展现的,所以如果b[i]的大写形式可以在坏键中找到,不作处理
            else {//以上情况都没有发生,就是好的键
                c+=b[i];
                k=1;
            }
        }
        if(k)cout<<c;//如果有好键就输出字符串,没有就输出空行
        else cout<<"
    ";
    }
  • 相关阅读:
    实习一面+二面+三面面经
    内核协议栈2
    android之activity生命周期图
    gcc1
    实习一
    android之startActivityForResult
    KFS
    android之使用DDMS帮助开发
    设计模式——工厂模式
    博客备份工具(博主网)开发略谈
  • 原文地址:https://www.cnblogs.com/fromzore/p/9574026.html
Copyright © 2011-2022 走看看