恺撒密码问题 为使电文保密,往往按其规律将其转换成密码,收报人再按约定的规律将其译回原文。例如:将字母A转变成字母E, a变成e, B变成F, b变成f, 即变成其后的第四个字母,W变成A,X变成B,Y变成C,Z变成D……字母按上述规律转换,非字母字符不变。 请编写函数void fun (char *s),将电文按以上规律转换为密码。在主函数中完成字符串的输入及输出。 如s字符串"thank you" 经过fun(s)函数调用后,内容改为"xlero csy"
时间: 2024-02-01 10:13:56 浏览: 171
在密码学中,恺撒密码是一种最简单并且最广为人知的加密技术。 它是一种替换加密的技术,明文中的所欲字母都在字母表上向后(或向前)
5星 · 资源好评率100%
下面是实现恺撒密码转换的代码:
```c
#include <stdio.h>
void fun(char *s) {
while (*s != '\0') {
if (*s >= 'A' && *s <= 'Z') { // 大写字母
*s = (*s - 'A' + 4) % 26 + 'A'; // 转换成密码
} else if (*s >= 'a' && *s <= 'z') { // 小写字母
*s = (*s - 'a' + 4) % 26 + 'a'; // 转换成密码
} else { // 非字母字符不变
*s = *s;
}
s++; // 指向下一个字符
}
}
int main() {
char s[100];
printf("请输入电文:");
gets(s); // 输入电文
fun(s); // 转换成密码
printf("密码为:%s\n", s); // 输出密码
return 0;
}
```
输入示例:
```
请输入电文:thank you
```
输出示例:
```
密码为:xlero csy
```
阅读全文