題目敘述
題目採EOF方式收資料,每一筆資料有一行字串,要求輸出所有字元位於鍵盤上左邊的按鍵,Q、A、Z、`,這四個字元和空白除外。
範例輸入 #1
O S, GOMR YPFSU/
URD. ,U [JPMR MI,NRT OD 8346333
範例輸出 #1
I AM FINE TODAY.
YES, MY PHONE NUMBER IS 7235222
解題思路
可以使用Map來建檔,需要注意的是 \ 和 ' 都屬於特殊字元需要用另一個寫法,\ 要寫成 \\,' 要寫成 \'。
解題程式碼如下 (僅供參考):
#include <iostream>
#include <map>
using namespace std;
int main() {
map<char, char>MAP;
MAP['`'] = '`';
MAP['1'] = '`';
MAP['2'] = '1';
MAP['3'] = '2';
MAP['4'] = '3';
MAP['5'] = '4';
MAP['6'] = '5';
MAP['7'] = '6';
MAP['8'] = '7';
MAP['9'] = '8';
MAP['0'] = '9';
MAP['-'] = '0';
MAP['='] = '-';
MAP['Q'] = 'Q';
MAP['W'] = 'Q';
MAP['E'] = 'W';
MAP['R'] = 'E';
MAP['T'] = 'R';
MAP['Y'] = 'T';
MAP['U'] = 'Y';
MAP['I'] = 'U';
MAP['O'] = 'I';
MAP['P'] = 'O';
MAP['['] = 'P';
MAP[']'] = '[';
MAP['\\'] = ']';
MAP['A'] = 'A';
MAP['S'] = 'A';
MAP['D'] = 'S';
MAP['F'] = 'D';
MAP['G'] = 'F';
MAP['H'] = 'G';
MAP['J'] = 'H';
MAP['K'] = 'J';
MAP['L'] = 'K';
MAP[';'] = 'L';
MAP['\''] = ';';
MAP['Z'] = 'Z';
MAP['X'] = 'Z';
MAP['C'] = 'X';
MAP['V'] = 'C';
MAP['B'] = 'V';
MAP['N'] = 'B';
MAP['M'] = 'N';
MAP[','] = 'M';
MAP['.'] = ',';
MAP['/'] = '.';
MAP[' '] = ' ';
string str;
while (getline(cin, str))
{
for (int i = 0; i<str.length(); i++)
{
cout << MAP[str[i]];
}
cout << "\n";
}
}
留言
張貼留言