乙级|1029.旧键盘

题目描述

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

输入描述

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

输出描述

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

输入例子

7_This_is_a_test
_hs_s_a_es

输出例子

7TI

我的代码

#include
#include
int main(){
    char a[1000],b[1000],c[1000];
    int len1,len2,i,j,k=0,t=0,m=0,d[1000];
    scanf("%s",a);
    scanf("%s",b);
    len1=strlen(a);
    len2=strlen(b);
    for(i=0;i=97&&c[i]<=122){
            c[i]=c[i]-32;
        }
    }
    for(i=0;i

我的分析

这道题算是我绞尽脑汁的一道题了。我的思路是先将输入的两段字符串相比较,将第二段中所缺少的字符存在c[ ]数组中,然后就是将c数组中的小写字母换成大写的,接着就是在输出时不将重复的字符再次输出,我也就是卡在了这里很长时间,后来想到了代码所示的方法:先用一个数组将c[ ]中重复的字符位置记下来,然后在输出之前先判断它的位置是否在数组里面,如果不在,则输出,如果在,就不能重复输出。

你可能感兴趣的:(乙级|1029.旧键盘)