实际上,根据凯撒密码的加密规则,将字符'Z'向后偏移2位应该得到字符'B',而不是字符'b'。

因此,之前的回答是正确的。使用以下代码:

char CaesarCipher (const char IN, const int D) {
    char CC = IN;
    
    if (IN >= 'A' && IN <= 'Z') { // 大写字母的情况
        CC = ((IN - 'A' + D + 26) % 26) + 'A';
    }
    else if (IN >= 'a' && IN <= 'z') { // 小写字母的情况
        CC = ((IN - 'a' + D + 26) % 26) + 'a';
    }
    else if (IN >= '0' && IN <= '9') { // 数字的情况
        CC = ((IN - '0' + D + 10) % 10) + '0';
    }
    
    return CC;
}

这样,当你输入字符'Z'和偏移量D的值为2时,函数CaesarCipher('Z', 2)将返回字符'B'。

标签: 常规


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