问题:
问题:
把手放在键盘上时,稍不注意就会往右错一位。这样,输入Q会变成输入W,输入J会变成输入K等。
输入一个错位后敲出的字符串(所有字母均大写),输出打字员本来想打出的句子。输入保证合法,即一定是错位之后的字符串。例如输入中不会出现大写字母A。
样例输入:
O S, GOMR YPFSU/
样例输出:
I AM FINE TODAY.
思路:我们用getchar逐个读取缓冲区中的字符,然后对在常量字典中进行查找该字符,如果找到,输出其前一位,否则输出当前字符(比如空格和句点).
#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
string s="1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; //反斜杠要用两个反斜杠表示,第一个反斜杠表示转义
int main()
{
char ch;
while(ch=getchar())
{
int i=s.find(ch);
if(i!=-1)
cout<<s[i-1];
else
cout<<s[i];
}
return 0;
}