c++ 字符串解密代码
时间: 2023-07-24 12:10:17 浏览: 101
字符串解密是指将一个加密后的字符串还原为原始字符串的过程。对于本题的加密方式,我们只需要将每个字符进行反向的移位操作即可。以下是一个简单的 C++ 字符串解密代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string decrypt(string str, int key) {
string res = "";
for (char c : str) {
if (isalpha(c)) {
char base = isupper(c) ? 'A' : 'a';
int pos = c - base - key;
pos = (pos + 26) % 26;
res += pos + base;
} else {
res += c;
}
}
return res;
}
int main() {
string str;
int key;
cout << "Please input the string you want to decrypt: ";
getline(cin, str);
cout << "Please input the decryption key: ";
cin >> key;
string res = decrypt(str, key);
cout << "The decrypted string is: " << res << endl;
return 0;
}
```
在 `decrypt()` 函数中,我们与加密函数 `encrypt()` 类似地遍历输入字符串 `str` 中的每个字符。如果该字符是字母,则计算其移位前的位置 `pos`,并将其转换为对应的字符加入结果字符串 `res` 中。具体来说,我们先计算出当前字符所在的字母表中的位置 `pos`,然后减去移位量 `key` 得到新的位置 `new_pos`,最后将其转换为对应的字符并加入结果字符串 `res` 中。如果该字符不是字母,则直接加入结果字符串中。在计算位置时,我们需要考虑到负数的情况,因此需要加上 26 并取模。
希望对您有所帮助!
阅读全文