凯撒密码问题

时间:2012-10-17 04:40:47

标签: c

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

我终于开始工作了我整个操作都错了,这对我有用。

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

在我尝试之前

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

感谢快速回答!

1 个答案:

答案 0 :(得分:0)

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