囫囵吞枣 发表于 昨天 16:11

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

这是俺们c语言自学作业c语言现在还没怎么学{:5_96:} ,求助{:5_100:}

FishC 发表于 昨天 16:12

以下是一个简单的字符串加密算法示例,使用凯撒密码(每个字母向后移动3位)来实现加密。代码用C语言编写,适合初学者理解。


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

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

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

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

    printf("加密后的密文: %s", str);
    return 0;
}


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

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 昨天 17:50

搜下凯撒密码实现就可以了
页: [1]
查看完整版本: 实现一个字符串加密算法,将一段不超过20的字符串进行加密,输出加密后的密文,需....