【题目链接】

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。

输入格式:

输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。

输出格式:

按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有1个坏键。

输入样例:

7_This_is_a_test
_hs_s_a_es

输出样例:

7TI

【提交代码】

 #include <stdio.h>
#include <string.h> int main(void)
{
int i;
int table[++]; char pStr1[];
char pStr2[];
char ch;
int len1, len2; scanf("%s", pStr1);
scanf("%s", pStr2); len1 = strlen(pStr1);
len2 = strlen(pStr2); memset(table, 0x00, sizeof(table));
// 记录“实际被输入的文字”的键,即没有坏的键
for(i = ; i <= len2; i++)
{
ch = pStr2[i-];
if(ch >= '' && ch <= '' && table[ch-''] == )
{
table[ch-''] = ;
}
else if(ch >= 'a' && ch <= 'z' && table[ch-'a'+] == )
{
table[ch-'a'+] = ;
}
else if(ch >= 'A' && ch <= 'Z' && table[ch-'A'+] == )
{
table[ch-'A'+] = ;
}
else if(ch == '_' && table[+] == )
{
table[+] = ;
}
}
// 从“应该输入的文字”中检测是否为“实际被输入的文字”
// 如果不是“实际被输入的文字”则说明该键是坏掉的
for(i = ; i <= len1; i++)
{
ch = pStr1[i-];
if(ch >= '' && ch <= '')
{
if(table[ch-''] == )
{
printf("%c", ch);
table[ch-''] = ;
}
}
else if(ch >= 'a' && ch <= 'z')
{
if(table[ch-'a'+] == )
{
printf("%c", ch-'a'+'A');
table[ch-'a'+] = ;
}
}
else if(ch >= 'A' && ch <= 'Z')
{
if(table[ch-'A'+] == )
{
printf("%c", ch);
table[ch-'A'+] = ;
}
}
else if(ch == '_')
{
if(table[+] == )
{
printf("%c", ch);
table[+] = ;
}
}
} return ;
}

PAT (Basic Level) Practise:1029. 旧键盘的更多相关文章

  1. PAT (Basic Level) Practice 1029 旧键盘 分数 20

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...

  2. PAT (Basic Level) Practice 1033 旧键盘打字 分数 20

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

  3. PAT (Basic Level) Practise (中文)-1029. 旧键盘(20)

    PAT (Basic Level) Practise (中文)-1029. 旧键盘(20) http://www.patest.cn/contests/pat-b-practise/1029 旧键盘上 ...

  4. PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20)

    PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20)  http://www.patest.cn/contests/pat-b-practise/1033 旧 ...

  5. PAT (Basic Level) Practise (中文)-1039. 到底买不买(20)

    PAT (Basic Level) Practise (中文)-1039. 到底买不买(20) http://www.patest.cn/contests/pat-b-practise/1039 小红 ...

  6. PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20)

    PAT (Basic Level) Practise (中文)-  1022. D进制的A+B (20)  http://www.patest.cn/contests/pat-b-practise/1 ...

  7. PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)

    PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...

  8. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)

    PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)   http://www.patest.cn/contests/pat-b-practise/1025 ...

  9. PAT (Basic Level) Practise (中文)- 1026. 程序运行时间(15)

    PAT (Basic Level) Practise (中文)- 1026. 程序运行时间(15)    http://www.patest.cn/contests/pat-b-practise/10 ...

  10. PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20)

    PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20)  http://www.patest.cn/contests/pat-b-practise/1027 本题 ...

随机推荐

  1. redhat enterprixe 5.0 DNS 服务配置与管理

    一.了解DNS相关概念 DNS是一个分布式数据库,在本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户机/服务器模式在整个网络上存取.通过采用复制技术和缓存技术使得整个数据库稳定可靠的同时, ...

  2. eclipse-mysql-tomcat bug之旅

    赶紧默念三遍google大法好... [连接数据库 servlet调用提示找不到可加载的driver,普通的.java文件没问题] 表示不服啊...明明可以连上啊...为什么多了几个中间界面就不好使了 ...

  3. linux系统字符集

    Linux中中文乱码问题通常是由于字符集与windows不兼容所引起,windows的中文字符集是双字节的GBK编码linux采用的是3字节的utf-8编码,所以在windows下用工具连接linux ...

  4. SQL远程创建数据库

    CREATE PROCEDURE [dbo].[p_CreateDB]   @Des_DB sysname,  @ServerName sysname=N'',  @UserName sysname= ...

  5. [Js]基础知识

    一.JavaScript组成 1.ECMAScript 解释器.翻译(提供功能有限,如加减乘除,定义变量.函数等)   几乎没有兼容性问题 2.DOM    有一些兼容性问题 3.BOM(用的少,交互 ...

  6. iframe子页面与父页面通信

    同域下父子页面的通信 父页面: <!DOCTYPE html> <html> <head lang="en"> <meta charset ...

  7. Redis系列-存储篇string主要操作函数小结

    通过上两篇的介绍,我们的redis服务器基本跑起来.db都具有最基本的CRUD功能,我们沿着这个脉络,开始学习redis丰富的数据结构之旅,当然先从最简单且常用的string开始. 1.新增 a)se ...

  8. 从ajax获取的数据无法通过Jquery选择器来调用事件

    如果标签是动态生成的,比如说div.tr.td等,若需通过Jquery来获取事件,那么需要用live来绑定相应的事件. 比如说绑定div的click事件 $("div").live ...

  9. 文件浏览器及数码相框 -2.3.2-freetype_arm-2

    显示多行文字 两行文字左边对齐 简单使用两个循环显示两行字体 根据上一行字体的宽度来进行下一行左边的计算 #include <sys/mman.h> #include <sys/ty ...

  10. validator

    http://rickharrison.github.io/validate.js/validate.js rules: 'required|callback_check_password' vali ...