這題為對照的方式,因為不是所有字元的對照都有共同的關係,或是少數幾種不同情況的關
係,所以需要自己建對照的方式,用 switch, if 的話,會需要寫成多行程式碼,用字串陣列的
方式把前一個的放在前面,用 loop 找到後,印出前一個即是對照的,這樣就不用多寫很多程
式碼。如果在 table 找不到 ( 搜尋的 index 超過 table 裡的個數 ),就直接印出。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void){
char input[10000]={0};
char table[]="`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int i,j;
while(fgets(input,10000-1,stdin)!=NULL){
for(i=0;input[i]!='\0';i++){
for(j=0; table[j]!=input[i] && j<strlen(table) ;j++);
if( j==strlen(table) ) printf("%c",input[i]);
else printf("%c",table[j-1]);
}
}
return 0;
}
沒有留言:
張貼留言