题中可用的字母包括大小写(给出的坏键的字母,全为大写),数字,"_" “,” “.” “-” “+”,并且用“+”号代表上档键即(SHIFT)。
输入的两行中分别给出那些坏掉的键,以及应该输出的文字。
输出可以出现的结果文字

分析:
1.给出的坏键的字母全为大写,因此为了统一写法应该先转化为小写,这样小写与大写都无法输出了(符合实际)
2.再给出应该出现的字符串时,如有大写字母应该保证其小写字母的键位与上档键(“+”)同时完好才能输出,并且应该输出大写字母,若只有小写字母完好,则输出的为小写。

 1 #include<cstdio>
2 #include<cstring>
3 const int maxn = 100010;
4 bool hashTable[256];
5 char str[maxn];
6 int main() {
7 memset(hashTable, true, sizeof(hashTable));//初始全部定true,表示键全部完好。
8 gets_s(str);//输入坏掉的键
9 int len = strlen(str);
10 for (int i = 0; i < len; i++) {
11 if (str[i] >= 'A' && str[i] <= 'Z') {//先将字母键位全部转换为小写,方便之后判断是否输出
12 str[i]+= 32;
13 }
14 hashTable[str[i]] = false; //将坏了的键全部标记住。
15 }
16 gets_s(str); //输入应该输入的字符串
17 len = strlen(str);
18 for (int i = 0; i < len; i++) {
19 if (str[i] >= 'A' && str[i] <= 'Z') {
20 int temp = str[i] + 32;
21 if (hashTable[temp] == true && hashTable['+'] == true) {//只有该字母键与上档键全部完好,才可以进行输出大写字母
22 printf("%c", str[i]);
23 }
24 }
25 else if (hashTable[str[i]] == true) {
26 printf("%c", str[i]);//其他键位只要完好便可以输出
27 }
28 }
29 printf("\n");
30 return 0;
31 }

最新文章

  1. linux安装mvn后提示权限不够
  2. Android之layout_weight解析
  3. 利用Maven建立java web项目
  4. 设置eclipse补全方法
  5. mysql 新建用户
  6. Eclipse 下如何删除一个项目的 SVN 信息
  7. BlockingQueue
  8. ADODB 数据库Access连接
  9. 构建安全的Xml Web Service系列之wse之证书存储位置
  10. 【百度地图API】如何区分地址解析和智能搜索?
  11. hihoCoder #1078 : 线段树的区间修改(线段树区间更新板子题)
  12. centos7下安装pip以及mysql等软件
  13. java算法----排序----(4)快速排序
  14. Eclipse 的一些调试技巧(转)
  15. ASP.Net Core 2.2 MVC入门到基本使用系列 (一)
  16. 命令行执行python文件时提示ImportError: No module named &#39;xxx&#39;
  17. Razor:从aspx到cshtml常见错误及正确书写方法
  18. HTTP 无状态啊无状态啊
  19. shell替换掉两个以上的空格
  20. Maven创建一个Web项目

热门文章

  1. 从微信小程序到鸿蒙js开发【13】——list加载更多&amp;回到顶部
  2. SQL Server中DELETE和TRUNCATE的区别
  3. winform解析json API数据
  4. SpringBoot解决特殊符号 []报400问题
  5. Js和JQuery基础
  6. &#129300; 移动端 JS 引擎哪家强?美国硅谷找......
  7. Lambda 表达式简介
  8. 用 hexo 快速搭建博客
  9. JUC-ThreadLocalRandom
  10. 001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入)