例题3-2 WERTYU(WERTYU, UVa10082)

发布时间 2023-04-01 17:00:32作者: isYu

题目

把手放在键盘上时,稍不注意就会往右错一位。这样,输入Q会变成输入
W,输入J会变成输入K等。键盘如图3-2所示。

image

输入一个错位后敲出的字符串(所有字母均大写),输出打字员本来想打出
的句子。输入保证合法,即一定是错位之后的字符串。例如输入中不会出现
大写字母A。

样例输入

O S, GOMR YPFSU/

样例输出

I AM FINE TODAY.

思路

定义常量数组s: 用于确定每一个字符的前一个字符

代码

#include <iostream>
#include <cstdio>

using namespace std;

char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";

int main()
{
//	freopen("output.txt","w",stdout);
	char c;
	while((c = getchar()) != EOF)
	{
		int i;
		for(i = 1; s[i] && s[i] != c; i++);  // 定位到该字符
		if(s[i]) printf("%c",s[i-1]);
		else printf("%c",c);
	}
	return 0;
}