以下是使用C语言编写的凯撒密码算法示例代码:

#include <stdio.h>

// 凯撒密码加密函数
void caesarEncrypt(char message[], int shift) {
    int i = 0;
    char ch;
    
    while (message[i] != '\0') {
        ch = message[i];
        
        if (ch >= 'a' && ch <= 'z') {
            ch = ch + shift;
            
            if (ch > 'z') {
                ch = ch - 'z' + 'a' - 1;
            }
            
            message[i] = ch;
        }
        else if (ch >= 'A' && ch <= 'Z') {
            ch = ch + shift;
            
            if (ch > 'Z') {
                ch = ch - 'Z' + 'A' - 1;
            }
            
            message[i] = ch;
        }
        
        i++;
    }
}

// 凯撒密码解密函数
void caesarDecrypt(char message[], int shift) {
    int i = 0;
    char ch;
    
    while (message[i] != '\0') {
        ch = message[i];
        
        if (ch >= 'a' && ch <= 'z') {
            ch = ch - shift;
            
            if (ch < 'a') {
                ch = ch + 'z' - 'a' + 1;
            }
            
            message[i] = ch;
        }
        else if (ch >= 'A' && ch <= 'Z') {
            ch = ch - shift;
            
            if (ch < 'A') {
                ch = ch + 'Z' - 'A' + 1;
            }
            
            message[i] = ch;
        }
        
        i++;
    }
}

int main() {
    char message[100];
    int shift;
    
    printf("请输入要加密/解密的消息:");
    fgets(message, sizeof(message), stdin);
    
    printf("请输入位移值(正数为加密,负数为解密):");
    scanf("%d", &shift);
    
    // 去除输入中的换行符
    if (message[strlen(message) - 1] == '\n') {
        message[strlen(message) - 1] = '\0';
    }
    
    caesarEncrypt(message, shift);
    printf("加密后的消息:%s\n", message);
    
    caesarDecrypt(message, shift);
    printf("解密后的消息:%s\n", message);
    
    return 0;
}

上述代码中的caesarEncrypt()函数用于加密消息,caesarDecrypt()函数用于解密消息。在main()函数中,首先从用户输入获取消息和位移值,然后调用相应的函数进行加密和解密操作,最后输出结果。

请注意,该示例代码中没有对输入进行严格的验证和错误处理,实际使用中可能需要进行适当的改进。

C语言实现凯撒密码算法:加密解密示例代码

原文地址: http://www.cveoy.top/t/topic/bmx3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录