神奇的字符串 Time Limit:1000MS Memory Limit:65536K Total Submit:282 Accepted:96 Description GDUT的3xian的字符串处理功力在ACM界无人不知无人不晓。 今天,july从3xian那偷到了一本秘籍,从此,打开书的第一章,页首写着26个字母”IUJTMFHXOKBQEAPZCDWRYNVSGL” ,下面一句话,26个字母对应着英文字母”ABCDEFGHIJKLMNOPQRSTUVWXYZ” ,此书根据此字母表编写,需要翻译后查看。july为了练就3xian的神功,请你为他写一个程序,以便翻译书上内容。 Input 输入一个数,代表需要翻译的串的数目 输入3xian秘籍原文,格式为一行字符串,仅由(A … Z)26个字母组成,长度不超过100 Output 对于每个字符串,输出翻译后的内容 Sample Input 1 XMQQP Sample Output HELLO Source xiao_wu #include<stdio.h> #include<string.h> typedef struct Match { char sou[26] ; char mat[26] ; } Match ; int main(void) { char temp = 'A' ; char SouStr[] = {'I','U','J','T','M','F','H','X','O','K','B','Q','E','A','P','Z','C','D','W','R','Y','N','V','S','G','L' } ; int i = 0 ; Match match ; int t ; int n = 0; char str[101] ; int j = 0 ; for(i =0 ; i < 26 ; i++) { match.sou[i] = SouStr[i] ; match.mat[i] = temp + i ; } //puts("Please enter the number: ") ; scanf("%d",&t) ; getchar() ; while(t-- > 0) { gets(str) ; n = strlen(str) ; for(i = 0 ; i < n ; i++) { for(j = 0 ; j < 26 ; j++) { if(str[i] == match.sou[j]) { putchar(match.mat[j]) ; break ; } } //end of for2 } //end of for1 putchar('/n') ; } //end of while return 0 ; }
第一个被接受的ACM水题。。虽然真的是水题,但是我终于做对。。算是对自己的一点激励~~~~