这是我的功能:
// 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
。
答案 0 :(得分:0)
尝试这样的代码:
char d = isupper(c) ? 'A' : 'a';
c -= d;
c += key;
c %= MAX_KEY;
c += d;