有一段电文,根据下面规律译成密码:
A -> Z a -> z
B -> Y b -> y
C -> X c -> x
. .
. .
. .
Z -> A z -> a
非字母字符,不进行译码。要求编程序将明文译成密文,然后再由译码译成明文。
字符分析,你会发现,其中的规律。大写最终译成的还是大写,小写最终还是译成了小写。其他字符不改变。我们可以发现明文字符和密文字符的和是不变的。我们很快可以计算到:
大写的 明文 + 密文 = 155;小写的 明文 + 密文 = 219;根据此原理,编写如下代码:
#include <stdio.h> #define N 100
char convert(char); int main(int argc, int *argv[]) { char str0[N],str1[N],str2[N]; char c; int i; printf("plese input proclaimed in writing:"); gets(str0); printf("the cryptograph is :"); for (i = 0 ; i <= strlen(str0); i++) { str1[i] = convert(str0[i]); } puts(str1); printf("the resolve cryptograph is :"); for (i = 0 ; i <= strlen(str1); i++) { str2[i] = convert(str1[i]); } puts(str2); system("pause"); }
char convert(char c) { char c_convert ; if (c >= 'A' && c <= 'Z') { c_convert = 155 - c; } else if (c >= 'a' && c <= 'z') { c_convert = 219 - c; } else { c_convert = c; } return c_convert; }
|
阅读(1106) | 评论(0) | 转发(0) |