Leí que en ascii al tener cada caracter una numeracion independiente, la manera de pasar de minusculas a mayusculas era restandole 32 , y viceversa.
No se recomienda ya que el lenguaje C no garantiza el juego de caracteres ASCII (solo un subconjunto de el) como tampoco que la diferencia entre las mayúsculas y minúsculas sea de 32. Es el caso usual si pero no esta garantizado.En su lugar es mejor utilizar isalpha y tolower/toupper (prototipos en <ctype.h>) para conocer si un carácter es alfabético y de ser el caso pasarlo a minúsculas/mayúsculas.
Un saludo