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

输入格式:

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

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

输出格式:

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

输入样例:

7+IE.
7_This_is_a_test.

结尾无空行

输出样例:

_hs_s_a_tst

结尾无空行

#include<stdio.h>
#include <string.h>
#pragma warning(disable:4996)
int book[1000000];
char str1[1000000];
char str2[10000000];
typedef int bool;
int main() {gets(str1);gets(str2);int len1 = strlen(str1);for (int cnt = 0; cnt < len1; cnt++) {int temp1 = toupper(str1[cnt]);book[temp1] = 1;temp1 = tolower(str1[cnt]);book[temp1] = 1;}int len2 = strlen(str2);for (int cnt = 0; cnt < len2; cnt++) {if (book[(int)str2[cnt]] != 0) str2[cnt] = 0;}bool judge =  book[(int)'+'];if (judge==1) {for (int cnt = 0; cnt < len2; cnt++) {if (str2[cnt] >= 'A' && str2[cnt] <= 'Z') str2[cnt] = 0;}}int flag = 0;for (int cnt = 0; cnt < len2; cnt++) {if (str2[cnt] != 0) {putchar(str2[cnt]);flag = 1;}}if (flag==0) putchar('\n');return 0;
}

我踩过的坑:

1.我提前以为,.+-全是是上档键,然而实际上,就只有+号是上档键

2.没想到坏键可能为空再加上scanf不能吸收空的字符串所以过不了测试点3

然后有个大佬的,我粘了过来

#include <stdio.h>
#include <ctype.h>
int main() {char A[123] = {0}, ch;while ((ch = getchar()) != '\n') {A[ch]++;}while ((ch = getchar()) != '\n') {if ((isupper(ch) && A[43]) || A[toupper(ch)]) {continue;}else {putchar(ch);}}return 0;
}

1033 旧键盘打字 (20 分)(c语言)相关推荐

  1. C++学习之路 | PTA乙级—— 1033 旧键盘打字 (20 分)(精简)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  2. PAT乙级 1033 旧键盘打字 (20 分)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 原题链接 代码 #incl ...

  3. 【PAT乙】1033 旧键盘打字 (20分) 字符串

    1033 旧键盘打字 (20分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中 ...

  4. 1033 旧键盘打字 (20 分)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  5. PAT 1033 旧键盘打字 (20 分) C++

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  6. 测试点2错的来:1033 旧键盘打字 (20分)

    立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是 ...

  7. 1033 旧键盘打字 (20分)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...

  8. PAT Basic 1033. 旧键盘打字(20)(C语言实现)

    我的PAT系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容.此处文章目前已更新至与Github Pages同步.欢迎star我的repo. 题目 ...

  9. 【PAT乙级】1033 旧键盘打字 (20 分)

    题目地址 #include<bits/stdc++.h> using namespace std; map<char,int>mp; int main(void) {strin ...

最新文章

  1. Exchange Server 2019新功能预览-揭秘被削减的功能
  2. 配置SQL Server 2005 远程连接(转)
  3. 10、如何查看MySQL系统帮助?
  4. 侍魂胧月传说显示服务器未开启,侍魂胧月传说为什么进不去 侍魂胧月传说进不去的原因...
  5. 对象必须实现 iconvertible。_精雕基础教程:对象的显示颜色
  6. 常见List面试问题
  7. linux的8小时差问题解决
  8. 华中农业大学C语言实验5答案,物理实验报告册(上册)-华中农业大学实验.pdf
  9. 中指北针怎么画_木工图纸怎么快速看懂?助你看懂施工图的9个技巧
  10. cc2530定时器和捕获比较_STM32学习笔记07—基础定时器实验
  11. 巨人java生鲜app下载_Java生鲜电商平台-生鲜电商平台SSO(单点登陆)技术方案(小程序/APP)...
  12. windows7文本文档换成c语言,win10电脑新建文本文档默认编码是UTF-8怎么修改成ANSI编码...
  13. mysql回调地狱_es6 promise 所见
  14. java.lang.NoClassDefFoundError: Could not initialize class org.apache.batik.bridge.CursorManager
  15. Java反序列化和JNDI注入
  16. 如何理解IPD+CMMI+Scrum一体化研发管理解决方案之IPD?
  17. 常用的国产计算机软件,国产常用操作系统介绍,亲身使用告诉你答案!
  18. Bilibili宋红康老师MySQL高级篇笔记-架构篇(有完整的md格式笔记,迟点整理好会挂链接)
  19. Win Server2003常见问题的解决然方案
  20. 多项式拟合缺点_常见算法优缺点

热门文章

  1. linux线程间通信优点,进程间通信与线程间通信【转】
  2. 河南城建学院linux期末试题,河南城建学院Linux期末考试复习题
  3. 不能卸载java_无法卸载注入的DLL
  4. 斐波那契数列的3种求法及几种素数筛法
  5. bzoj 1031 [JSOI2007]字符加密Cipher 后缀数组
  6. java 21-13 合并
  7. (四)C语言柔性数组、指针赋值
  8. lambda表达式初步
  9. 获取窗口上指定控件集合 2012-08-22 16:14 498人阅读 评论(0) 收藏...
  10. Display Skin