我的 cipher() 函数似乎不支持大写字母

My cipher() function does not seem to support uppercase letters

本文关键字:不支持 大写字母 函数 cipher 我的      更新时间:2023-10-16

这是我的函数:

// Helper function for cipher()
void cipherc(char& c, int key)
{
    if (isupper(c)) {
        c -= 'A';
    } else {
        c -= 'a';
    }
    c += key;
    c %= MAX_KEY;
    if (isupper(c)) {
       c += 'A';
    } else {
        c += 'a';
    }
}

我设计它以支持大写字母,我认为这会起作用。显然,我不知道我在做什么。如果有人能向我展示一种更好的方法来执行此操作或解决此问题,那就太好了。我想(希望)保持功能不变,char&int并返回void.

尝试这样的代码:

   char d = isupper(c) ? 'A' : 'a';
   c -= d;
   c += key;
   c %= MAX_KEY;
   c += d;