凯撒密码,当字符为 >'z' 时环绕

Caesar cipher, wrap around when char's are >'z'

本文关键字:密码 gt 字符 凯撒      更新时间:2023-10-16

我早些时候在这里,得到了一个人手添加字符ASCII引用,以增加每个字母的密码移位。然而,我不知道如何解决字符高于'z'的问题。

谁能给我一个提示,当字符到达字母表的末尾时,如何环绕。当然,我不指望任何人替我做我的工作。

char decrypt(char letter)
{
int increment = 9;
if(letter == ' ')
{
    return letter;
}
letter += increment;
return letter;
}
int main()
{
char message[446]; int i = 0; char space = ' ';
ifstream in("encryptedText.txt");
if(in.getline(message, 446))
{
    while(message[i])
    {
            cout << decrypt(tolower(message[i])) << endl;
            i++;
    }
}
else
{cout << "Can't read file" << endl;}
cout << endl;  
system("pause");
}

模运算是您的朋友。当整数形成环而不是序列时,可以应用模运算,如:

5 % 4 == 17 % 4

你需要在相对于'a'的整数空间中计算它,当然,适当地减去'a'