friends before any thing apologizes for English I am using translator because only of the brasil and I don't know how to write.
my problem is the following I have to create a program that reads a text and it prints the same text to the I thwart oh this that I did
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define max 10
typedef int TipoChave;
typedef struct {
char texto;
} TipoItem;
typedef struct Celula_str *Apontador;
typedef struct Celula_str {
TipoItem Item;
Apontador Prox;
} Celula;
typedef struct {
Apontador Fundo, Topo;
int Tamanho;
} TipoPilha;
void FPVazia(TipoPilha *Pilha)
{
Pilha->Topo = (Apontador) malloc(sizeof(Celula));
Pilha->Fundo = Pilha->Topo;
Pilha->Topo->Prox = NULL;
Pilha->Tamanho = 0;
} /* FPVazia */
int Vazia(TipoPilha Pilha)
{
return (Pilha.Topo == Pilha.Fundo);
} /* Vazia */
void Empilha(TipoItem x, TipoPilha *Pilha)
{
Apontador Aux;
Aux = (Apontador) malloc(sizeof(Celula));
Pilha->Topo->Item= x;
Aux->Prox = Pilha->Topo;
Pilha->Topo = Aux;
Pilha->Tamanho++;
} /* Empilha */
void Desempilha(TipoPilha *Pilha, TipoItem *Item)
{
Apontador q;
if (Vazia(*Pilha))
{ printf(" Erro lista vazia\n");
return;
}
q = Pilha->Topo;
Pilha->Topo = q->Prox;
*Item = q->Item;
free(q);
Pilha->Tamanho--;
} /* Desempilha */
int Tamanho(TipoPilha Pilha)
{
return (Pilha.Tamanho);
} /* Tamanho */
int main()
{
TipoPilha pilha;
TipoItem item;
Apontador p;
FPVazia(&pilha);
printf(" digite um texto");
int i=0;
char palavra[30];
gets(palavra);
while (palavra[i]!= '0'){for(i=0;palavra[i]!=(' 'and '0');i++){
item.texto=palavra[i];
Empilha(item, &pilha);}}
while(!Vazia(pilha)){
printf(" %c \n", item.texto);
Desempilha(&pilha,&item);
if(palavra[i]!='0'){
i++;}
}
getch();}