[PAT乙级]1033 旧键盘打字(getline()读入)
生活随笔
收集整理的這篇文章主要介紹了
[PAT乙级]1033 旧键盘打字(getline()读入)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
舊鍵盤上壞了幾個鍵,于是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣?
輸入格式:
輸入在 2 行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文字母的壞鍵以大寫給出;每段文字是不超過 10?5?? 個字符的串。可用的字符包括字母 [a-z, A-Z]、數字 0-9、以及下劃線 _(代表空格)、,、.、-、+(代表上檔鍵)。題目保證第 2 行輸入的文字串非空。
注意:如果上檔鍵壞掉了,那么大寫的英文字母無法被打出。
輸出格式:
在一行中輸出能夠被打出的結果文字。如果沒有一個字符能被打出,則輸出空行。
輸入樣例:
輸出樣例:
_hs_s_a_tst代碼如下:
#include <iostream> #include <string> using namespace std; const int N = 500; bool vis[N] = {false};int main() {string str;/*cin>>str; 錯誤,如果鍵盤沒有一個鍵是壞的,那么第一行輸入的是空串,可cin讀入不了空串,所以用getline*/getline(cin,str);for (int i = 0; i < str.length(); i++){if (str[i] == '+'){for (int j = 'A'; j <= 'Z'; j++){vis[j] = true;}}else if(str[i] >= 'A' && str[i] <= 'Z'){vis[(int)str[i]] = true;vis[(int)(str[i] + 32)] = true;}else {vis[(int)str[i]] = true;}}string str1;getline(cin,str1);for (int i = 0; i < str1.length(); i++){if (vis[(int)str1[i]]){continue;}else{cout << str1[i];}}cout << endl;return 0; }總結
以上是生活随笔為你收集整理的[PAT乙级]1033 旧键盘打字(getline()读入)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [C++11]使用using和typed
- 下一篇: 如何将视频转为gif电脑如何转化gif