思路:定义一数组储存键位,判断左右位移,数组加减输出即可。
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char z;
char s[100];
char x[30]={'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l',';','z','x','c','v','b','n','m',',','.','/'};
int sign=0,i,j;
cin>>z;
if(z=='R')
{
sign=1; //全体右移
}
scanf("%s",s);
if(sign==1)
{
for(i=0;i<strlen(s);i++)
{
for(j=0;j<30;j++)
{
if(s[i]==x[j])
{
cout<<x[j-1];
break;
}
}
}
}
else
{
for(i=0;i<strlen(s);i++)
{
for(j=0;j<30;j++)
{
if(s[i]==x[j])
{
cout<<x[j+1];
break;
}
}
}
}
return 0;
}