Another approach would be to have an array of char ("char[65536]
Uppercase;") which contains all characters supported on your
platform; then add the following:
Uppercase ['a'] = 'A';
Uppercase ['b'] = 'B';
...
Uppercase ['z'] = 'Z';
Then, whenever you want to substitute a character by its uppercase
version, use
Uppercase [ch]
instead of ch.
I know, looks ugly, but according to OP I wanted to avoid calling any
functions, such as toupper().