概述
写在前面
做大一年级的导生,碰巧一个同学问了一个C语言程序设计的题目。说是怎么都弄不对。我看了看,正好也是三年前我碰到的题目,仿佛还噙着旧日时光的泪痕。特此将题目与我的解法奉上,以祭奠那段逝去的时光。
1.问题是什么?
(1)使用要求的方法加密(容易)
(2)如何去解密用以上方法加密过的内容(需要一点观察力)
2.加密程序
没什么好说的,直接按部就班来做就可以了,上程序:
#include<stdio.h>
#include<string.h>
char* encode(char code[]); //Define a function for encoding process
int main() {
char prim[100],*code;
printf("Please input the words which needs to be encoded:t");
gets(prim);
code = encode(prim);
printf("The encoded words are:t%sn",code);
return 0;
}
char* encode(char prim[]) {
int i,n,len;
char code[100];
char temp_char,trans_char;
int temp_num,trans_num;
len = strlen(prim);
for(i = 0;i < len;i++) {
temp_char = prim[i]; //Consider about the corresponding number of character
if (temp_char <= 'z' && temp_char >= 'a')
temp_num = temp_char - 'a' + 1;
else if (temp_char <= 'Z' && temp_char >= 'A')
temp_num = temp_char - 'A' + 27;
trans_num = temp_num*3 % 52;
if (trans_num > 26 && trans_num <= 52) //Transform number to character
trans_char = 'A' + trans_num - 27;
else if (trans_num > 0 && trans_num <= 26)
trans_char = 'a' + trans_num - 1;
code[i] = trans_char;
}
code[len] = '