蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 n 位形成的。z 的下一个字母是 a,如此循环。他现在找到了移动前的原文字符串及 n,请你求出密码。用C++写
时间: 2024-10-28 19:10:06 浏览: 24
字符串/字符数组的一系列应用
在C++中,我们可以创建一个函数来解决这个问题。首先,我们需要一个字符数组来存储原始字符串,并考虑到字符移动的周期性。下面是一个简单的示例代码来帮助蒟蒻计算密码:
```cpp
#include <iostream>
#include <string>
std::string encryptPassword(const std::string& original_str, int n) {
std::string encrypted_str = "";
// 循环遍历原文字符串
for (char c : original_str) {
// 处理字母移动
if ('a' <= c && c <= 'z') { // 如果是小写字母
int offset = (c - 'a' + n) % 26; // 按字母表移位并处理周期
encrypted_str += static_cast<char>('a' + offset);
} else { // 非字母字符直接保留不变
encrypted_str += c;
}
}
return encrypted_str;
}
int main() {
std::string original_str = "example"; // 原始字符串
int n = 3; // 移动位数
std::string password = encryptPassword(original_str, n);
std::cout << "加密后的密码是: " << password << std::endl;
阅读全文