Universidad de Costa Rica
Escuela de Computación
Quiz 04
CI-1201 Programación II - 2013a
Profesor Jeisson Hidalgo-Céspedes

En un sitio web de hackers se quiere que la información publicada no sea muy práctica para robots -como buscadores o analizadores automáticos de contenido- por lo que se desea ofuscar, aunque sí se mantenga algo de legibilidad para seres humanos. Ya que la ofuscación se hará "en el aire" cada vez que se solicita una página al servidor web, se necesita que el programa sea tan eficiente como sea posible, por lo que se ha pensado en el lenguaje de programación C.

Aprovechando sus conocimientos de C, escriba una función que recibe una cadena de caracteres y reemplace en ella ciertas letras por caracteres especiales que más se le asemejan gráficamente. Dado a que los robots pueden aprender a decodificar los mensajes, se quiere que las letras de reemplazo no estén fijas en el programa ejecutable, sino que estén en un archivo de configuración. Por esto su función debe recibir tres cadenas: la cadena a ofuscar (la cual será modificada), la cadena de letras a buscar y la cadena de letras a reemplazar. Estas dos últimas tienen exactamente la misma cantidad de caracteres. Por ejemplo, si su función se llama obfuscate() y se invoca con

Imprimiría en la pantalla:

Sugerencia: si gusta puede emplear la función const char* strchr(const char* str, int ch) del encabezado <string.h>, la cual busca el carácter ch en la cadena str, y si lo encuentra retorna un puntero hacia dicho carácter, de lo contrario, retorna un puntero nulo.