1. 程式人生 > >演算法競賽入門經典(第二版)第三章陣列和字串中競賽題目選講例題3-2WERTYU

演算法競賽入門經典(第二版)第三章陣列和字串中競賽題目選講例題3-2WERTYU

把手放在鍵盤上時,稍不注意就會往右錯一位。這樣,輸入Q會變成輸入W,輸入J會變成輸入K等。
輸入一個錯位後敲出的字串(所有字母均為大寫),輸出打字員本來想打出的句子。輸入保證合法,即一定是錯位之後的字串。例如輸入中不會出現大寫字母A。

#include<stdio.h>
char s[]="'1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int main()
{
     int i,c;
     while((c=getchar())!=EOF)
     {
         for(i=1;s[i]&&s[i]!=c;i++);//找錯位之後的字元在常量表中的位數
         if(s[i])putchar(s[i-1]);
         else putchar(c);
     }
     return 0;
}