Leer una palabra y escribirla al reves

De Ejercicios

Contenido

Enunciado

Para leer una palabra, contar las letras y escribirla al revés, lo primero que hay que hacer es pedir la palabra y almacenarla. Una vez que tenemos la palabra en un array, para contar el número de letras se chequea letra por letra (bucle while) sumando 1 cada vez. Este bucle finaliza cuando el carácter leído es el carácter '\0' que indica el final de la palabra. Este carácter, como ya se ha dicho antes, es introducido por la función scanf( ) de manera automática. Para escribir la palabra al revés, basta con leerla empleando un bucle que cuente hacia atrás. Guarda este programa como alreves.c.

Soluciones

Programa en C por Angel

Solución comentada del Ejercicio:

/* fichero alreves.c */
/* Este programa lee una palabra y la escribe al revés */
#include <stdio.h>
void main (void) {
  palabra[21];
  int i;
  printf("Teclea una palabra de menos de 20 letras:\n");
  scanf("%s", palabra);
  i=0;
  while (palabra[i++]!='\0')
  ;
  printf("%s tiene %d letras.\n", palabra, i-1);
  printf("%s escrita al reves es: ", palabra);
  while (i>0)
    printf("%c", palabra[--i]);
  printf("\n");
}

Comentario

La forma de almacenar el array leyéndolo del teclado es mediante la función scanf(). Luego, mediante un bucle while se determina el número de letras. La forma de chequear la condición de final del bucle es por reconocimiento del carácter '\0' que tienen todas las cadenas de caracteres al final. El contador incluye el carácter de fin de la cadena. La cadena se podría haber rellenado de otra manera, como se verá en el Ejercicio siguiente. También el número de caracteres de la cadena se puede determinar mediante otra forma: llamando a la función de libreria strlen(char*). Una vez que conocemos el número de caracteres de la cadena, se puede escribir el array al revés mediante un bucle con un contador decreciente. Conviene utilizar el operador --i para que decrezca antes de ser utilizado.


Soucion en Pseudocódigo

ALGORITMO AlReves
ENTRADAS:
    palabra:ARRAY (0...20)DE CARACTERES (Palabra que vamos a mostrar al revés, terminada en punto)
SALIDAS:
    (El contenido de palabra mostrado al revés)
VARIABLES:
    i: ENTERO
INICIO
    (Leer la palabra caracter a caracter hasta que se introduzca un punto)
    ESCRIBIR "Teclea una palabra de menos de 20 letras: "
    i <-- -1
    REPETIR
       i <--i+1
       LEER palabra(i)
    MIENTRAS palabra(i)<>'.' HACER
 
    (Mostrar el número de letras de la palabra)
    ESCRIBIR palabra, "tiene", i-1, "letras"

    (Mostrar la palabra al revés)
    ESCRIBIR palabra, "escrita al revés es: "

    MIENTRAS i>0 HACER
       ESCRIBIR palabra(i)
       i <-- i-1
    FIN_MIENTRAS
                    
FIN

Comentario

En en lenguaje C las cadenas de caracteres terminan con el carácter especial '\0'. Debido a que en el pseudocódigo hemos leído la cadena de caracteres como un ARRAY DE CARACTERES se ha modificado la solución para que el final de la palabra introducida quede marcada por un punto (.) en lugar de por el carácter especial '\0'.

Tipos de soluciones