0

这是我的功能:

// 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

4

1 回答 1

0

试试这样的代码:

   char d = isupper(c) ? 'A' : 'a';
   c -= d;
   c += key;
   c %= MAX_KEY;
   c += d;
于 2013-10-17T00:52:49.463 回答