鱼C论坛

 找回密码
 立即注册
查看: 50|回复: 2

实现一个字符串加密算法,将一段不超过20的字符串进行加密,输出加密后的密文,需....

[复制链接]
发表于 昨天 16:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是俺们c语言自学作业c语言现在还没怎么学 ,求助
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 16:12 | 显示全部楼层
以下是一个简单的字符串加密算法示例,使用凯撒密码(每个字母向后移动3位)来实现加密。代码用C语言编写,适合初学者理解。


  1. #include <stdio.h>
  2. #include <string.h>

  3. int main() {
  4.     char str[21];  // 定义字符数组,最多存储20个字符 + 结束符'\0'
  5.     int i;

  6.     printf("请输入一个字符串(不超过20个字符): ");
  7.     fgets(str, sizeof(str), stdin);  // 安全地输入字符串

  8.     // 加密过程:遍历每个字符
  9.     for (i = 0; str[i] != '\0'; i++) {
  10.         // 如果是大写字母,移动3位(例如A->D)
  11.         if (str[i] >= 'A' && str[i] <= 'Z') {
  12.             str[i] = (str[i] - 'A' + 3) % 26 + 'A';
  13.         }
  14.         // 如果是小写字母,移动3位(例如a->d)
  15.         else if (str[i] >= 'a' && str[i] <= 'z') {
  16.             str[i] = (str[i] - 'a' + 3) % 26 + 'a';
  17.         }
  18.         // 其他字符(如数字、空格)保持不变
  19.     }

  20.     printf("加密后的密文: %s", str);
  21.     return 0;
  22. }
复制代码


代码说明:
- 使用 fgets 输入字符串,避免缓冲区溢出。
- 加密时,只处理字母字符(A-Z和a-z),通过模运算确保移动后仍在字母范围内。
- 非字母字符(如数字或标点)不加密,直接保留。

运行示例:
- 输入 "Hello" 会加密为 "Khoor"。
- 输入 "abc123" 会加密为 "def123"。

这个算法简单易懂,适合C语言初学者练习。如果有问题,欢迎继续提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 17:50 | 显示全部楼层
搜下凯撒密码实现就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-8 04:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表