2014年7月10日 星期四

uva 10082 WERTYU

這題為對照的方式,因為不是所有字元的對照都有共同的關係,或是少數幾種不同情況的關

係,所以需要自己建對照的方式,用 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;
}

沒有留言:

張貼留言