Me piden que ingrese por el teclado una palabra y mediante una implementación de una pila la invierta. Lo que he realizado es lo siguiente con el problema que cuando ingreso la palabra en la consola el programa finaliza abruptamente, sin mostrarme en pantalla la palabra invertida.
saludos.
Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct pila
{
char dato;
struct pila *sig;
} Pila, *ptrPila;
void ingresar (ptrPila *inicio, char *letras);
void ver (ptrPila inicio);
int main(int argc, char *argv[])
{
char letras [10];
ptrPila inicio=NULL;
printf("Ingrese la palabra que se invertira\n") ;
scanf("%[^\n]", letras);
ingresar (&inicio, letras);
ver (inicio);
system("PAUSE");
return 0;
}
void ingresar (ptrPila *inicio, char *letras)
{
ptrPila nuevo;
int n,i;
n=strlen(letras);
for(i=n-1;i<=0;i--)
{
nuevo=(ptrPila) malloc (sizeof(Pila));
nuevo->dato=letras[i];
nuevo->sig=NULL;
if (*inicio==NULL)
{
*inicio=nuevo;
}
else
{
nuevo->sig=*inicio;
*inicio=nuevo;
}
}
return;
}
void ver (ptrPila inicio)
{
printf("%c ", inicio->dato);
if(inicio->sig!=NULL)
ver (inicio->sig);
}