旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
输入格式:
输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。
输出格式:
按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有1个坏键。
输入样例:
1 2 |
7_This_is_a_test _hs_s_a_es |
输出样例:
1 |
7TI |
题目无难度,从输入的字符串中将显示出的字符都替换为其他的数据,再去除重复多了的字符,剩下的即为坏了的按键~
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#include<stdio.h> #include<string.h> int main() { char in[81],out[81],broken[100]="",*p,*pb=broken; int i; scanf("%s%s",in,out); for(i=0;out[i]!='\0';i++) { while((p=strchr(in,out[i]))!=NULL) { *p=1; } } for(i=0;in[i]!='\0';i++) { if(in[i]>1&&in[i]>='a'&&in[i]<='z') in[i]=in[i]+('A'-'a'); } for(i=0;in[i]!='\0';i++) { if(in[i]>1) { if((p=strchr(broken,in[i]))==NULL) { *pb=in[i]; *(pb+1)='\0'; pb++; } } } printf("%s",broken); } |