题目要求:
凯撒密码是罗马扩张时期朱利斯•凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令,其原理很简单,就是通过将字母表中的字母移动一定位置而实现加密。例如,每个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。请编写一个程序,将用户从键盘输入的文本字符串(只包含a~z的字符且长度小于100)进行加密后输出。
---------------------------------------------------------------------------------------------------------------------------------
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Caesar(char c[]);
int main()
{
char c[100];
printf("Input a string:");
fgets(c, 100, stdin);
Caesar(c);
puts(c);
return 0;
}
void Caesar(char c[])
{
int i;
for (i = 0; i < strlen(c); i++)
{
if (c[i] == 'x' || c[i] == 'y' || c[i] == 'z')//xyz为特殊情况,单独算
{
c[i] = c[i] - 23;
}
else
{
c[i] = c[i] + 3;
}
}
}