Problem A:例4002 按错键
Time Limit:1000MS Memory Limit:65536K
Total Submit:423 Accepted:148
Description
一种常见的打字错误是将手放在键盘上正确位置的右侧相邻的一位,如图4.1所示:
图4.1 键盘示意图
例如,键入“Q”却按成了“W”,“J”被按成“K”,要求你编程对纠正上述的错误。
Input
输入文件包含多行,每行可能会包含数字、空格、大写字母(不包括“A”、“Z”、“Q”)和标点符号(不包括单引号“’”)。所有标记了单词的按键不不包括在内,如Tab、BackSpace、Control等。
Output
将每个字母或标点符号用它左边的符号替换,输入中的空格按原样输出。
Sample Input
O S,GOMR YPFSU/
234567890-=WERTYYUIOP[]
Sample Output
I AMFINE TODAY.
1234567890-QWERTTYUIOP[
<span style="font-size:14px;">#include <stdio.h>
#include <string.h>
int main()
{
char c[47]={'`','1','2','3','4','5','6','7','8','9','0','-','=','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',',','.','/'};
char a[48];
int i,j;
while(gets(a))
{
int len=strlen(a);
for (i = 0; i < len; ++i)
{
if(a[i]==' ')
{
printf(" ");
continue;
}
for (j = 0; j < 47; ++j)
{
if (a[i]==c[j])
{
printf("%c", c[j-1]);
}
else continue;
}
}
printf("\n");
}
return 0;
}</span>