輸入一段文字 ( 限制為 ASCII 表中,編號 表中,編號 表中,編號 32 至 125 之字元 ) ,將它們 ,將它們 每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層每個字元 依照鍵盤的位置,印出它們右邊若按有兩層( 如 ‘:’和‘;’位於同一按鍵上 ) ,則輸出下層字元即 ,則輸出下層字元即 ,則輸出下層字元即 ,則輸出下層字元即 ,則輸出下層字元即 ‘;’,若該按鍵為上層 ,若該按鍵為上層 ,若該按鍵為上層 字元 ( 如‘!’) 則輸出其右邊按鍵之上層字元 ( 如‘@’) ,若輸入的字元右 ,若輸入的字元右 ,若輸入的字元右 邊的鍵為不可視按,如 邊的鍵為不可視按,如 邊的鍵為不可視按,如 邊的鍵為不可視按,如 邊的鍵為不可視按,如 shift, enter, backspace backspace 或右邊已無按鍵, 或右邊已無按鍵, 或右邊已無按鍵, 或右邊已無按鍵, 則不做 更動,照樣輸出 。
輸入說明 :
第一列輸入個正整數 n (0 < 10) n (0 < 10) n (0 < 10) ,代表有 n筆測資。 每筆測資 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 輸入一行鍵盤上屬於 ASCII 表中編號 表中編號 表中編號 表中編號 32 至 125 之字元,並以 之字元,並以 之字元,並以 之字元,並以 之字元,並以 之字元,並以 enter 結束該行 。
輸出說明 :
輸出該行每個字元右邊位置的文,除題目所述之例外。最後必須 輸出該行每個字元右邊位置的文,除題目所述之例外。最後必須 輸出該行每個字元右邊位置的文,除題目所述之例外。最後必須 輸出該行每個字元右邊位置的文,除題目所述之例外。最後必須 輸出該行每個字元右邊位置的文,除題目所述之例外。最後必須有換行字元。
#include <iostream>
#include <string.h>
#include <vector>
#include <cstring>
#include <cstdlib>
using namespace std;
int main()
{
string strN ;
getline(cin,strN);
int N = atoi(strN.c_str());
for(int g = 0; g < N;g++)
{
string STRinput;
getline(cin,STRinput);
string other="!@#$%^&*()_++`1234567890-=={}||qwertyuiop[]\\:""asdfghjkl;''<>??zxcvbnm,.//";
int fir = STRinput.size();
int sec = other.size();
for(int i = 0; i < fir;i++)
{
STRinput[i] = tolower(STRinput[i]);
}
for(int i = 0; i < fir;i++)
{
for(int j= 0;j<sec;j++)
{
if(STRinput[i] == ' ')
{
STRinput[i] = ' ';
break;
}
else if(STRinput[i] == other[j])
{
STRinput[i] = other[j+1];
break;
}
}
cout<<STRinput[i];
}
cout<<endl;
}
return 0;
}
沒有留言:
張貼留言