凯撒的密码 - C.

时间:2018-02-07 02:02:56

标签: c caesar-cipher

我正在为C中的Caesar密码设置一个问题集。我想我得到了该程序的工作。理想情况下,我们希望考虑大于26的较大密钥(因此使用%)。

我的代码:https://github.com/al2613/caesar-cipher-c/blob/master/caesar.c

我正在研究潜在的解决方案,并发现以下内容: https://gist.github.com/CraigRodrigues/100ab759b6b6722ba3ad8acf12e26371

两者似乎都有相同的输出(即hello的key = 53变为ifmmp)

我很好奇为什么两者都有效?是否有必要包括此部分:

 if (islower(plain_text[i]))
   {
       if (encrypt > 122)
       {
           printf("%c", 96 + ((encrypt - 122) % 26));
       }
        else
        {
            printf("%c", encrypt);
        }

看来克雷格的解决方案更清洁了。我见过人们使用x - 122或x - 90方法来解释超出aA-zZ的ASCII值,这就是我合并它的原因。但我并不完全确定这是如何或为何如此有效,特别是在mod 26的背景下。

0 个答案:

没有答案