【发布时间】:2014-04-17 14:04:17
【问题描述】:
我正在尝试实现一个循环,将字符串加密为int shift 的给定移位量。下面的代码效果很好,但是我想更改代码,以便它按降序而不是升序加密。关于在算法中改变什么的任何线索?
int shift = 3;
string line = "abc";
for (int i = 0; i < line.length(); i++) {
if (line[i] >= 'a' && line[i] <= 'z') {
int rotate = line[i] + shift;
if (rotate > 'z') line[i] = ((line[i] - 26) + shift);
else line[i] = rotate;
}
}
cout << line << endl;
移位为 3,上面的代码将string line "abc" 转换为 "def",但我试图得到 的输出“dcb”。
- 注意:代码是 C++,但我会像 C++ 一样接受 JavaScript、Java 或 Php 建议,只要它是没有库资源的原始代码。谢谢大家。
【问题讨论】:
-
@WhozCraig 我不确定你在暗示什么。您可以忽略该语句,即用于测试。
-
好的。没有暗示什么。建议使用密钥表通常可以使简单的剖宫产密码更容易,因为它可以在内部保存许多计算,但它与您现在发布的内容没有真正的关系,所以我放弃了它。
-
哦,好吧,但我的代码将 A-z 包装为:
line[i] = ((line[i] - 26) + key);,所以不需要。
标签: java javascript php c++ encryption