题意::把手放在键盘上时,稍不注意就会往右错一位。这样的话,Q会变成W,J会变成K等。输入一个错位后敲出的字符串,输出打字员本来想打出的句子。
这是昨天下午在网上看到的一道题。
这是昨天下午在网上看到的一道题。
其实,这道题很简单,找一个字母的对应数组就可以了。用‘0’来补位,因为aqz是不可能输入的。引用Linus的那句名言:Talk is cheap. Show me the code。呵呵
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char arr[] = "0vxswdfguhjknbio0earycqzt0";
int c = 0;
while((c = getchar()) != EOF)
{
switch(c)
{
case '[':
putchar('p');
break;
case ';':
putchar('l');
break;
case ',':
putchar('m');
break;
case ' ':
putchar(' ');
break;
case 'q':
case 'Q':
case 'a':
case 'A':
case 'z':
case 'Z':
case '\n':
break;
default:
c = tolower(c);
putchar(arr[c-'a']);
break;
}
}
return 0;
}