Ejercicio en C – Teclado descompuesto

En este post te mostraré cómo resolver un ejercicio en C del teclado descompuesto, se trata del trabajo con cadenas, listas dinámicas y escritura de archivos; es un ejercicio muy interesante.

Descripción del ejercicio

Supongamos que estamos escribiendo un texto pero que el teclado está descompuesto y por lo tanto, aleatoriamente, se presiona la tecla inicio (la que mueve el cursor al inicio) y fin (la que mueve el cursor al final) mientras escribimos. Nosotros no nos fijamos de ello hasta que miramos el texto.

Afortunadamente, tenemos en el texto el carácter [ que indica que se presionó la tecla Inicio, y el carácter ] que indica que se presionó la tecla Fin.

Dado un archivo de entrada con texto, y con los caracteres indicando el inicio y el fin, escribir el texto que debió ser escrito, es decir, corregirlo. Por ejemplo:

Texto de entrada es Hola[Mundo entonces texto de salida es MundoHola.

Casos de uso

Si no te quedó claro con el ejemplo de arriba te muestro otras pruebas de cómo debería ser la salida y la entrada

Cargar archivo en lista

Lo primero que tenemos que hacer es cargar el archivo de entrada en memoria, para ello usamos una lista. En mi caso utilicé simplemente una pila, pero en lugar de agregar los elementos al inicio, agregué los elementos al final.

La función que carga el archivo es la siguiente:

Nota: si no entiendes de dónde vienen algunas variables o constantes, al final dejaré el archivo del código completo, no te preocupes.

Como ves, por cada línea del archivo se remueve el salto de línea con strtok. Además, se invoca a la función agregarLineaALista así:

Lo que hace esa función es crear un nuevo nodo de la lista, colocarle la línea recién leída y después poner ese nodo al final.

Arreglar texto

La función que realmente hace el trabajo es la que veremos a continuación. Lo que hace es recorrer la cadena e insertar el texto ya arreglado de acuerdo a lo que vaya encontrando; es decir, coloca el cursor antes o después.

Dentro de esa función se utiliza otra función para insertar texto en otra cadena; esto se usa para cuando el texto va al inicio, pues cuando va al final se puede usar strcat.

Escribir lista enlazada en archivo usando C

Para terminar recorremos la lista y escribimos el texto ya arreglado en otro archivo:

Eso creará el nuevo archivo con las modificaciones ya hechas.

Código completo

El código completo del ejercicio del teclado descompuesto en C queda como se ve a continuación.

Recuerda que si quieres probarlo debes tener el archivo teclado-entrada.txt en el mismo directorio en donde el programa se ejecuta.

Conclusión

Si quieres puedes ver más ejercicios de C en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario