Convert QWERTY to Dvorak
Edward, a poor copy typist, is a user of the Dvorak Layout. But now he has only a QWERTY Keyboard with a broken Caps Lock key, so Edward never presses the broken Caps Lock key. Luckily, all the other keys on the QWERTY keyboard work well. Every day, he has a lot of documents to type. Thus he needs a converter to translate QWERTY into Dvorak. Can you help him?
The QWERTY Layout and the Dvorak Layout are in the following:
![]() |
The QWERTY Layout |
---|
|
![]() |
The Dvorak Layout |
---|
|
Input
A QWERTY document Edward typed. The document has no more than 100 kibibytes. And there are no invalid characters in the document.
Output
The Dvorak document.
Sample Input
Jgw Gqm Andpw a H.soav Patsfk f;doe Nfk Gq.d slpt a X,dokt vdtnsaohe Kjd yspps,glu pgld; aod yso kd;kgluZ 1234567890 `~!@#$%^&*()}"']_+-=ZQqWEwe{[\| ANIHDYf.,bt/ ABCDEFuvwxyz
Sample Output
Hi, I'm Abel, a Dvorak Layout user.
But I've only a Qwerty keyboard.
The following lines are for testing:
1234567890
`~!@#$%^&*()+_-={}[]:"'<>,.?/\|
ABCDEFuvwxyz
AXJE>Ugk,qf;
一开始用字符串输入SF了,又来个没见过的错误,最后用字符输入才过。。。
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std;
char s1[]={"_+QWERTYUIOP{}-=qwertyuiop[]ASDFGHJKL:\"asdfghjkl;'ZXCVBNM<>?zxcvbnm,./"};
char s2[]={"{}\"<>PYFGCRL?+[]',.pyfgcrl/=AOEUIDHTNS_aoeuidhtns-:QJKXBMWVZ;qjkxbmwvz"};
void solve(char op)
{
int i;
for(i=0;s1[i];i++)
{
if(s1[i]==op)
{
printf("%c",s2[i]);
return ;
}
}
printf("%c",op);
}
int main()
{
char str[1010];
char op;
while(scanf("%c",&op)!=EOF)
{
solve(op);
}
return 0;
}