凯撒密码问题

标签 c

我无法让它正常工作,我需要指出正确的方向。用户将输入一个命令行整数来确定字符将旋转多少位置。我的问题是我希望所有小写和大写保持相同的大小写,同时保持空格和特殊字符不变,仅将字母旋转指定的整数。我需要确保,例如:整数集为 1,并且在要加密的字符串中输入字符“Z”,它需要回绕到“A”,而不是转到下一个 ASCII 字符“[” I一直在尝试使用“%”运算符,但我可能用错了。我并不是在找人为我编写整个代码,我知道我可以通过查看工作程序的源代码找到答案,但我试图自己弄清楚其中的大部分内容,但现在我被难住了并需要一点帮助。谢谢!

我终于让它工作了,我整个操作都是错误的,这对我有用。

char encrypt = ('A' + ( ( (input[i] - 'A') + key ) % 26));

在我尝试之前

char encrypt (input[i] + key) % 26;

感谢您的快速答复!

最佳答案

虽然有很多方法可以实现您想要的目标,但我建议您研究一下java.util.Map。确定这是加密 Map 还是解密 Map 并将输入字符“放置”为键,将输出字符“放置”为值。然后,当您需要翻译时,您只需遍历每个要翻译的字符并组合输出值即可。注意未映射的值(因为它们在查找时将返回 null)。

关于凯撒密码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12927236/

相关文章:

c - 处理指针数组

c - 在 C 中使用预递增递归

c++ - 获取对源文件中特定函数的所有调用并生成其他文件(使用 C、C++ 预处理器或脚本)

c - 为什么我不能运行我的程序

python - 如何使用 python 编写可以在 c 中读取的二进制结构?

c - 如何将数组的地址传递给函数?

c - 是否可以从代码中指定链接器选项?

c - 嵌套结构,读取字符串 C 的字符时出错

我可以在阻塞模式下在 send() 之后立即释放我的数据吗?

c - 如何用 C 语言读取和解析 .dat 文件?