zcmu-1928 JYB’s keyboard(键盘转换,打表)

Description

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:

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 Abfl, a Dvqrak Layqut usfr. But I'vf qnly a Owfrty kfybqard. Thf eqllqwing linfs arf eqr tfsting: 1234567890 `~!@#$%^&*()+_-={}[]:"'<>,.?/\| ABCDFEuvwxyz AXJF>Ugk,oe;

就是两个键盘大小写分别打一下表就好了,别漏下就行。 

#include<cstdio>
#include <cstring>
#include<algorithm>
#include <iostream>
#include <cmath>
//#include <stdio.h>
#define ll long long
using namespace std;
char s1[]= {"QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?qwertyuiop[]\\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+`1234567890-="};
char s2[]= {"\"<>PYEGCRL?+|AQFUIDHTNS_:OJKXBMWVZ',.pyegcrl/=\\aqfuidhtns-;ojkxbmwvz~!@#$%^&*(){}`1234567890[]"};

char c;

char print(char c)
{
    for(int i=0; s1[i]; i++)
        if(s1[i]==c)
            return s2[i];
    return c;
}

int main()
{
    
    while(~scanf("%c",&c))
    {
        printf("%c",print(c));
    }
    cout<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/hzyhfxt/article/details/82216264