【题目链接】

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

输入格式:

输入在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 web 服务配置与管理

    一.Web服务及工作原理 Web服务的实现采用客户/服务器模型.客户机运行Web客户程序(浏览器),作用是解释和显示Web页面,相应用户的输入请求,并且通过http协议将用户请求传递给Web服务器.W ...

  2. Js数据类型之——Date

    小猪曾经分享过一篇文章,主要是讲到后台使用c#将DataTime类型序列化到前台之后进行操作:具体请看传送门 今天小猪来分享在JS中的Data类型 类型说明 ECMAScript中的Data类型是在早 ...

  3. Js笔试题之parseInt()和.map()

    parseInt()的几个例子 var b = parseInt("01"); alert("b="+b); var c = parseInt("09 ...

  4. bzoj 2326: [HNOI2011]数学作业

    #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #defin ...

  5. treap 1286郁闷的出纳员.cpp

    #include<cstdio>#include<cstdlib>#include<ctime>struct shu{ int l,r,sum,zhi,dui;}a ...

  6. 一个高在线(可以超过1024)多线程的socket echo server(pthreads 和 libevent扩展)

    研究了3周吧,本来打算用pthreads+event扩展的,结果event扩展太原始了,太多函数了,实在不知道怎么在外部随时发送数据给客户端,所以改用libevent, 改用libevent之后花了2 ...

  7. C#点击按钮用DataGridView动态增加行、删除行,增加按钮列

    原来有一行: 点击添加,在下面增加同样的一行 新增加的行有一列删除按钮,点击某行的删除按钮时,删除当前行 方法: 哈哈,我果然好聪明啊 1.文本框.文本框.添加按钮 2.一个DataGridView( ...

  8. touch ImageView

    package com.example.touchdemo; import android.os.Bundle;import android.app.Activity;import android.u ...

  9. Xp 消息队列的使用

    1.安装消息队列3.0: 控制面板/添加删除程序/添加window组件/找到消息队列/选择->详细信息->MSMQ HTTP支持. 注意:如果计算机没有连接到域需要去掉Active Dir ...

  10. 关于查询oracle in >1000 的讨论

    https://q.cnblogs.com/q/88538/