PAT乙級1033(C語言)-舊鍵盤打字(20)

舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣?

輸入格式:

輸入在2行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文字母的壞鍵以大寫給出;每段文字是不超過105個字符的串。可用的字符包括字母[a-z, A-Z]、數字0-9、以及下劃線“_”(代表空格)、“,”、“.”、“-”、“+”(代表上檔鍵)。題目保證第2行輸入的文字串非空。

注意:如果上檔鍵壞掉了,那麼大寫的英文字母無法被打出。

輸出格式:

在一行中輸出能夠被打出的結果文字。如果沒有一個字符能被打出,則輸出空行。

輸入樣例:
7+IE.
7_This_is_a_test.
輸出樣例:

_hs_s_a_tst


#include<stdio.h>
#include<string.h>
int main()
{
  int key[178] = { 0 };//儲存壞鍵
  int i, check = 0;//check覈對是否有輸出
  char ch;
  while ((ch = getchar()) != '\n')
  {
    if (ch >= 'A'&&ch <= 'Z')key[ch - 'A' + 'a'] = 1;//字母大小寫都存入
    key[ch] = 1;
  }
  if (key['+'])for (i = 'A'; i <= 'Z'; i++)key[i] = 1;//上檔鍵壞掉,則所有大寫無法打出
  while ((ch = getchar()) != '\n')
  {
    if (key[ch])continue;
    printf("%c", ch);
    check = 1;
  }
  if (check == 0)printf("\n");//如果沒有輸出,則輸出\n
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章