• 智能AI问答!更聪明、更完整、原创作!
  • 一款基于GPT的超级AI机器人,可以回答问题、聊天、创作、写文案!

用c语言完成凯撒密码的程序,输入一段字符,good good study,按照凯撒密码的方式加密,

发布于 2024-11-24 15:17:29

下面是一个简单的C语言程序,它实现了凯撒密码加密功能。该程序接受用户输入的字符串,并将其通过向右移动3位的方式加密。请将以下代码复制到您的C语言开发环境中:

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

// 函数声明:进行凯撒密码加密
void caesarEncrypt(char text[], int shift);

int main() {
    char text[100]; // 假设最大长度为99,留一个位置给字符串结尾的'\0'
    printf("Enter text: ");
    fgets(text, sizeof(text), stdin); // 输入字符串,包括空格

    // 去除可能读取的换行符
    size_t len = strlen(text);
    if (len > 0 && text[len - 1] == '\n') {
        text[len - 1] = '\0';
    }

    printf("Original text: %s\n", text); // 显示原始文本

    caesarEncrypt(text, 3); // 加密文本,向右移动3位

    printf("Encrypted text: %s\n", text); // 显示加密后的文本

    return 0;
}

// 定义凯撒密码加密函数
void caesarEncrypt(char text[], int shift) {
    for (int i = 0; text[i] != '\0'; i++) {
        if (isalpha(text[i])) { // 如果是字母
            char base = islower(text[i]) ? 'a' : 'A';
            text[i] = ((text[i] - base + shift) % 26) + base; // 进行移位
        }
    }
}

程序解释

  1. 主函数

    • fgets 用于读取用户输入的字符串,可以包含空格。
    • 去除由 fgets 读入的换行符。
  2. caesarEncrypt 函数

    • 遍历字符串中的每个字符。
    • 对于每个字母字符,计算其在字母表中的新位置,并进行加密。

编译和运行

  1. 将代码保存到一个文件中,例如 caesar_cipher.c
  2. 使用以下命令编译这个文件(如果您使用的是GCC):
    gcc -o caesar_cipher caesar_cipher.c
  3. 执行编译出的程序:
    ./caesar_cipher

    输入文本 "good good study",然后程序会输出加密后的结果。

请注意,我无法直接为您提供截图服务,不过按照上述方法操作后,您应该能得到程序的正确运行结果。

0 条评论

发布
问题

在线
客服