When you write your case-insensitive compare function....
'0-9' are ascii 48-57
'a-z' are ascii 97-172
'A-Z' are ascii 65-90
by masking off the 32 bit, you make all letters upper case while moving
the numbers to the range 16-25. Now you want the numbers to come after
the letters, so you could toggle the 64 bit and get:
'0-9' = 80-89
'A-Z' = 1-26
'a-z' = 1-26
So if c is an ascii character, x = ((c & ~32)^64) would be a value that
compares with the properties you seek. You'll still need to write a
function to compare strings while using this character mapping.
Hope it helps,
Flightgear-devel mailing list