Если ваша платформа имеет набор символов ASCII , то вы можете использовать XOR для достижения этого.
char c = 'a';
c ^= 32; // c will now contain 'A'
Это возможно из-за способа выбора значений ASCII.Разница между десятичными значениями маленьких и заглавных букв английского алфавита составляет ровно 32.
Если ваша платформа имеет набор символов EBCDIC , то вы можете сделать
char c = 'a';
c ^= 64; // c will now contain 'A'
Это работает по той же причине, упомянутой выше, только на этот раз разница составляет 64 вместо 32.