最近在知乎看到有人这样提问,而且标签也特别明显,为伸手党,做作业的都跑到知乎求程序了。。。因为以前没有接触过加密的,对加密原理倒是很感兴趣,可是发觉竟然是对输入字符的加密。由于没写过加密的,所以练练手,就几十行的程序,虽然这样不叫加密。随便写了一下
问题的描述为:用C语言实现对输入的引英文句子进行加密,用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如22x32y34z加密后是22yza32zab34abc。
/* 如果输入的字符中是字母的,则加密为其字母的后三位,其他字符则不变
例如12ab, 加密后,12bcdcde */
#include
int main(void)
{
int c, i;
printf("输入需要加密的字符\n");
for ( i = 0; ( c = getchar() ) != EOF; ++i ) {
//printf("输入需要加密的字符\n");
if ( ( c >= 'a' && c <= 'w' ) || ( c >= 'A' && c <= 'W' ) ) // 小写字母跟大写字母
printf("%c%c%c", c + 1, c + 2, c + 3);
else if ( c == 'x' ) // 因为 x, y, z 字符后面自己加1的话不会循环从a开始,所以得分开写
printf("%c%c%c", c + 1, c + 2, 'a');
else if ( c == 'y' )
printf("%c%c%c", c + 1, 'a', 'b');
else if ( c == 'z' )
printf("%c%c%c", 'a', 'b', 'c');
else if ( c == 'X' )
printf("%c%c%c", c + 1, c + 2, 'A');
else if ( c == 'Y' )
printf("%c%c%c", c + 1, 'A', 'B');
else if ( c == 'Z' )
printf("%c%c%c", 'A', 'B', 'C');
else
printf("%c", c);
}
return 0;
}
运行结果: