码迷,mamicode.com
首页 > 其他好文 > 详细

PAT1033. 旧键盘打字(20)

时间:2015-01-20 13:36:35      阅读:680      评论:0      收藏:0      [点我收藏+]

标签:

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?

输入格式:

输入在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 }
View Code

 

PAT1033. 旧键盘打字(20)

标签:

原文地址:http://www.cnblogs.com/GoFly/p/4235793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!