1033 旧键盘打字 (20 分)

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

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


输入格式:

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

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


输出格式:

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


样例:">样例:">输入样例:

1. 
7+IE.
2. 7_This_is_a_test.

输出样例:

_hs_s_a_tst

题目分析:

1.+是上档键,如果坏了,所有的大写字母都用不了

2.要用getline,否则空行处理不了


代码如下:

#include <iostream>
using namespace std;
int main() {
  char check[666];
  string bug, in;
  getline(cin, bug);
  getline(cin, in);
  for (int i = 0; i < bug.length(); i++) {
    check[bug[i]] = 1;
    if (bug[i] >= 'A' && bug[i] <= 'Z') {
      check[(int)bug[i] + 32] = 1;
    }
    if (bug[i] == '+') {
      for (int j = 'A'; j <= 'Z'; j++) { //上档键坏了
        check[j] = 1;
      }
    }
  }
  for (int i = 0; i < in.length(); i++) {
    if (check[in[i]] != 1) {
      cout << in[i];
    }
  }
  cout << endl;
}


相关文章
|
Java
往控制台打字(实例:游戏开局输入名字)
往控制台打字(实例:游戏开局输入名字)
52 0
|
6月前
1033 旧键盘打字 (20 分)
1033 旧键盘打字 (20 分)
|
6月前
1029 旧键盘 (20 分)
1029 旧键盘 (20 分)
|
数据安全/隐私保护 iOS开发 芯片
将任意应用窗口置顶显示,这个工具太强了。
将任意应用窗口置顶显示,这个工具太强了。
旧键盘打字 两数之和
旧键盘打字 两数之和的详细题解
|
Windows
scrlk键是什么意思(电脑键盘每个按键的作用详细图解)
scrlk键是什么意思(电脑键盘每个按键的作用详细图解)
5364 0
C语言——函数的综合运用。自定义函数,gotoxy清屏函数与HideCursor隐藏光标,防闪屏,共同制作打飞机游戏。
①在变量中,我们必须进行定义赋值初始化后,才能在程序中使用,所以需要一个“地方”,整理好这些变量,在程序中整洁一些void startup() //数据初始化②打出画面中所显示的所需代码,也给一个函数void show() //显示画面③在游戏运行中,飞机的移动,发射等操作必须使用键盘,此时就要进行输入判断,给出相应的函数,实行不同的命令 ,其中分为两种,一种是程序运行时对输入做出变化,另一种是不变化void updateWithoutInput() //与用户输入无关的更新。
C语言——函数的综合运用。自定义函数,gotoxy清屏函数与HideCursor隐藏光标,防闪屏,共同制作打飞机游戏。
PTA 1029 旧键盘 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。
102 0
|
算法
改错题:用户从键盘任意输入一个数字表示月份值n,程序显示该月份对应的英文表示,若n不在1~12之间,则输出“Illegal month”。 注意: (1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
改错题:用户从键盘任意输入一个数字表示月份值n,程序显示该月份对应的英文表示,若n不在1~12之间,则输出“Illegal month”。 注意: (1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
335 0