C++ 凯撒密码,当字符';s是>';z';

C++ 凯撒密码,当字符';s是>';z';,c++,encryption,C++,Encryption,我早些时候到过这里,有人帮我在字符中添加ASCII引用,以增加每个字母的密码移位。但是,我不知道如何解决字符高于“z”的问题 有人能给我一个提示,当字符到达字母表的末尾时,如何环绕。当然,我不希望有人替我做事 char decrypt(char letter) { int increment = 9; if(letter == ' ') { return letter; } letter += increment; return letter; } int main() { char

我早些时候到过这里,有人帮我在字符中添加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");
}
字符解密(字符字母)
{
int增量=9;
如果(字母=“”)
{
回信;
}
字母+=增量;
回信;
}
int main()
{
字符消息[446];int i=0;字符空间=“”;
ifstream in(“encryptedText.txt”);
如果(在getline(消息446)中)
{
while(消息[i])
{

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

5 % 4 == 17 % 4

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

@Marobri…值得记住的是,ascii字符可以直接转换为数字。如果您将其视为数字,这将对您有所帮助…谷歌搜索ascii表,您可以看到可用于未来“字母数学”的通用数值。