Originariamente inviato da Xaratroom
allora:
Per convertire da maiuscolo a minuscolo si aggiunge uno 0x20...
Per convertire da minuscolo a maiuscolo si toglie 0x20...
0x20 è la distanza che c'è fra a e A...
Se non conosci il codice ascii non credo ci siano funzioni matematiche che risolvano in tuo problema

char toupper(char c)
{
if (c >= 'a' && c <= 'z') //se c è una lettera minuscola
return c - 0x20;
}

char tolower(char c)
{
if (c >= 'A' && c <= 'A') //se c è una lettera maiuscola
return c + 0x20;
}

queste le ho scritte ora, non so se sono realmente così
A quanto mi hanno detto la soluzione non è questa, cioè è una soluzione più che valida, ma la cosa a quanto pare è più semplice.

Io sinceramente non ne ho idea.