凯撒密码是罗马扩张时期朱利斯•凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令,其原理很简单,就是通过将字母表中的字母移动一定位置而实现加密。 例如,每个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。请编写一个程序, 将用户从键盘输入的文本字符串(只包含a~z的字符且长度小于100)进行加密后输出。 函数原型:void Caesar(char c[]);
时间: 2024-03-22 18:39:09 浏览: 218
好的,下面是一个简单的 C 语言程序,用于实现凯撒密码加密:
```c
#include <stdio.h>
#include <string.h>
void Caesar(char c[])
{
int i, shift = 3; // 移动的位数为3
int len = strlen(c);
for (i = 0; i < len; i++) {
if (c[i] >= 'a' && c[i] <= 'z') {
// 处理小写字母
c[i] = (c[i] - 'a' + shift) % 26 + 'a';
} else if (c[i] >= 'A' && c[i] <= 'Z') {
// 处理大写字母
c[i] = (c[i] - 'A' + shift) % 26 + 'A';
}
}
printf("加密后的字符串为:%s\n", c);
}
int main()
{
char c[100];
printf("请输入要加密的字符串(只包含a~z的字符且长度小于100):");
scanf("%s", c);
Caesar(c);
return 0;
}
```
在该程序中,我们首先定义了一个 Caesar 函数,用于实现加密。在函数中,我们先获取字符串的长度 len,并将移动的位数 shift 设置为 3。然后,我们使用一个 for 循环遍历字符串中的每个字符,对于每个小写字母,将其转换为对应的加密后的字符;对于每个大写字母,同样进行转换。最后,我们将加密后的字符串输出到屏幕上。
在 main 函数中,我们首先定义一个 char 数组 c,用于存储用户输入的字符串。然后,使用 scanf 函数从键盘读取用户输入,并调用 Caesar 函数进行加密。
希望这个程序可以帮助你实现凯撒密码加密。
阅读全文