用c语言凯撒密码是罗马扩张时期朱利斯•凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令,其原理很简单,就是通过将字母表中的字母移动一定位置而实现加密。 例如,每个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。请编写一个程序, 将用户从键盘输入的文本字符串(只包含a~z的字符且长度小于100)进行加密后输出。 函数原型:void Caesar(char c[]); 函数功能:计算凯撒密码 程序的运行结果示例1: Input a string:baidu↙ edlgx 程序的运行结果示例2: Input a string:xyz↙ abc 输入格式: 输入提示信息:"Input a string:" 输入格式: 用 gets()函数 输出格式: 用 puts()函数
时间: 2023-07-16 13:12:23 浏览: 185
以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
void Caesar(char c[]) {
int len = strlen(c);
for (int i = 0; i < len; i++) {
// 只加密小写字母
if (c[i] >= 'a' && c[i] <= 'z') {
c[i] = (c[i] - 'a' + 3) % 26 + 'a';
}
}
}
int main() {
char str[100];
printf("Input a string:");
gets(str);
Caesar(str);
puts(str);
return 0;
}
```
程序的执行流程如下:
1. 定义一个字符串数组 `str`,用于存储用户输入的字符串。
2. 通过 `printf` 函数输出提示信息 `"Input a string:"`。
3. 通过 `gets` 函数从键盘读入用户输入的字符串,并存储到 `str` 中。
4. 调用 `Caesar` 函数对 `str` 进行加密。
5. 通过 `puts` 函数输出加密后的字符串。
6. 程序结束。
需要注意的是,由于函数 `gets` 存在安全问题,建议使用更安全的函数 `fgets` 来替代。另外,在实际应用中,凯撒密码已经过时并不安全,建议使用更加安全的加密算法。
阅读全文