gpt4 book ai didi

c++ - 字母加密程序

转载 作者:行者123 更新时间:2023-11-28 06:58:18 26 4
gpt4 key购买 nike

您好,我正在研究加密程序。该程序应获取用户输入的字母,并将其替换为字母表下方 11 位的相应字母。例如,如果用户输入“joe”,程序应该输出“uzp”。

我当前的代码可以很好地做到这一点,但它不能识别空格,程序应该环绕字母表。这样“Y”就变成了“J”,“Z”就变成了“K”等等。有人知道我该如何解决这个问题吗?

void encrypt(std::string &e);

int main() {

string nameAttempt;

cout << "Enter your name to be Encrypted: ";
cin >> nameAttempt;


cout << "Original string is: " << nameAttempt << endl;
encrypt( nameAttempt );

cout << "Encrypted string is: " << nameAttempt << endl;


system("pause");
return 0;
}


void encrypt (std::string &e) {
const char* tempCharArray = e.c_str();
for( int i=0; i<e.size(); ++i )
e[i] = tempCharArray[i]+11;
} //

最佳答案

假设您想要:

  • 用小写字母替换小写字母
  • 用大写字母替换大写字母
  • 保留空格和任何其他非字母字符

void encrypt (std::string &e)
{
int size = e.size();
for (int i=0; i<size; i++)
{
char c = e[i];
if (('A' <= c && c <= 'Z'-11) || ('a' <= c && c <= 'z'-11))
e[i] = c+11;
else if ('Z'-11 < c && c <= 'Z')
e[i] = c+11-'Z'+'A';
else if ('z'-11 < c && c <= 'z')
e[i] = c+11-'z'+'a';
}
}

关于c++ - 字母加密程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com