1.19 Escriba una función reverse(s) que invierta la cadena de caracteres s. Úsela para escribir un programa que invierta su entrada,línea a línea.
_____________________________________________________________________________________
Solución: En éste programa, la función se llama imprime,
#include<stdio.h> #define TAMANO 1000 int obtenerlinea(char[TAMANO + 1], int); void imprime(char[], int); int main() { /* Abre main */ printf("\nEste programa imprime las lineas en reversa. \n"); printf("Introduzca texto: "); char cadena[TAMANO + 1]; int caracteres_recibidos = 0; caracteres_recibidos = obtenerlinea( cadena, TAMANO); printf("\nEl numero de caracteres introducidos es: %d\n", caracteres_recibidos); imprime( cadena, caracteres_recibidos); return 0; } /* Cierra main */ /*/////////////////////////////////////////////////////////////////// //INICIA LA FUNCION GETLINE ///////////////////////////////////////////////////////////////////*/ int obtenerlinea( char entrada[], int longitud) { /* Abre obtenerlinea */ int c = 0; int contador = 0; int i = 1; printf("\nIntroduzca una linea y se imprimira de forma inversa.\n"); while ( (c = getchar()) != EOF ) { /* Abre while */ if ( contador++ < longitud ) entrada[i++] = c; } /* Cierra while */ return i; } /* Cierra obtenerlinea */ /*////////////////////////////////////////////////////////////////////// //INICIA LA FUNCION IMPRIME //////////////////////////////////////////////////////////////////////*/ void imprime( char cadena_a_imprimir[], int j) /* el entero j es el numero de casilla desde la que se empezará a imprimir */ { /* Abre imprime */ printf("\nAqui esta la linea en reversa:\n"); int contador = 0; char c = 0; for ( contador = j; contador >= 1; --contador) { /* Abre for */ c = cadena_a_imprimir[contador]; putchar(c); } /* Cierra for */ printf("\n\n"); return; } // Cierra imprime
No hay comentarios:
Publicar un comentario