題目大意
總之就是解碼
輸入
包含一條測試案例
輸出
將測試輸入對應鍵盤左邊兩格輸出
程式碼
#include <stdio.h> #include <stdlib.h> //printf("%d",(sizeof(set)/sizeof(*set))); //注意set中的'',第一個表示跳脫符號(''具有特殊意義),第二個表示真的'' char set[47]="1234567890-=qwertyuiop[]asdfghjkl;'zxcvbnm,./"; //對應鍵盤 int decode(char c){ int i=0; for(i=0;i<46;i++){ if(c==set[i]){ if((i-2)>0){ return set[(i-2)]; } else{ return set[i]; } } } return -1; } void lower(char input[]){ int i = 0; for(i=0;i<1024;i++){ if(input[i]>=65 && input[i]<=90){ input[i]=input[i]+32; } } } int main(){ char input[1024]=""; int i,tmp; while(fgets(input,1024,stdin)!=NULL){ lower(input); for(i=0;i<1024;i++){ tmp=decode(input[i]); if(tmp!=-1) input[i]=tmp; } printf(input); } return 0; }
解題概念
1. 將鍵盤順序先存入一陣列
2. 將輸入放進陣列比對
3. 輸出陣列索引值-2的陣列值