martes, 4 de enero de 2011

Kernighan_Ritchie_1.19 (Imprimir Lineas en Reversa en C)

_____________________________________________________________________________________
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

Related Posts Plugin for WordPress, Blogger...