Habrá inconvenientes con las letras que lleven acentos o diéresis, pues todas las funciones nativas discriminan entre letras con diacríticos y sin diacríticos (a no ser que se me escape alguna).
La solución a esto pasa por emplear "mapeo" de caracteres. Digamos una constante String con las letras que pueden llevar diacrítico, pero sin él, y una segunda constante String con las mismas letras pero con el diacrítico puesto.
Pero si se quiere impresionar al profesor y se cuenta con el tiempo y la disposición suficientes para investigar, convendría recurrir a la función
MultiByteToWideChar de la API de Windows. Ya que ésta permite separar las partes de un carácter compuesto, digamos una
a acentuada (
á) en las partes que la componen (
a y
´). Sólo tener cuidado de exceptuar a la eñe, que por alguna "extraña" razón fue tomada como letra compuesta por algún ingeniero en alguna parte del mundo.
Un saludo.
Al González.