Вот моя функция:
// 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;