旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?
输入格式:
输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)。题目保证第2行输入的文字串非空。
注意:如果上档键坏掉了,那么大写的英文字母无法被打出。
输出格式:
在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。
输入样例:
7+IE. 7_This_is_a_test.
输出样例:
_hs_s_a_tst思路:gets是遇到回车符结束
1 #include<stdio.h> 2 3 char wrong[100010]; 4 char input[100010]; 5 //char output[100010]; 6 int main(int argc, char *argv[]) 7 { 8 gets(wrong); 9 gets(input); 10 bool flag=false; //判断大小写 11 //转换成小写字母进行统一化 12 for(int i=0;wrong[i]!=‘\0‘;i++) 13 { 14 if(wrong[i]>=‘A‘&&wrong[i]<=‘Z‘) 15 wrong[i]+=32; 16 } 17 for(int i=0;input[i]!=‘\0‘;i++) 18 { 19 bool islegal=true; 20 for(int j=0;wrong[j]!=‘\0‘;j++) 21 { 22 if(wrong[j]==‘+‘) 23 flag=true; 24 if(flag&&input[i]>=‘A‘&&input[i]<=‘Z‘) 25 { 26 islegal=false; 27 break; 28 } 29 if(wrong[j]==input[i]) 30 { 31 islegal=false; 32 break; 33 } 34 else 35 { 36 if(input[i]>=‘A‘&&input[i]<=‘Z‘) 37 { 38 char temp=input[i]+32; 39 if(temp==wrong[j]) 40 { 41 islegal=false; 42 break; 43 } 44 } 45 } 46 } 47 if(islegal) 48 printf("%c",input[i]); 49 } 50 51 return 0; 52 }
时间: 2024-10-29 07:43:42