Ir ao conteúdo

Como criar uma String, empilhar, desempilhar em outra string?


Exgerth

Posts recomendados

Postado

Fala galera!

preciso de ajuda aqui!

eu já tenho uma biblioteca que define a estrutura de pilha para o C. todas as pilhas são do tipo void.

agora, estou usando a biblioteca porque preciso receber uma string, empilhar a string e em seguida desempilhar.

não consigo fazer isso de jeito nenhum.

o código que estou usando é esse. ele compila, mas trava assim que eu executo.

alguém pode me dar uma força? :huh:

#include <stdio.h>

#include "pilha.h"

void imprime(Pilha* p) {

int i;

char* elemento;

for(i = 0; i <= p->topo; i++) {

elemento = (char*) p->pilha;

printf("%s\n", *elemento);

}

}

int main() {

Pilha p1, p2;

// int um = 1, dois = 2, tres = 3, quatro = 4, cinco = 5, seis = 6;

char um[2] = "a", dois[2] = "b", tres[2] = "c", quatro[2] = "d", cinco[2] = "e", seis[2] = "f";

inicializa(&p1);

inicializa(&p2);

empilha(&p1, &um);

empilha(&p1, &dois);

empilha(&p1, &tres);

empilha(&p2, &seis);

empilha(&p2, &cinco);

empilha(&p2, &quatro);

empilha(&p1, desempilha(&p2));

empilha(&p1, desempilha(&p2));

empilha(&p1, desempilha(&p2));

imprime(&p1);

system("pause");

return 0;

}

Postado

Mas mesmo assim não consigo comprar elementos especificos dentro da string...

alguem sabe como fazer?

#include <stdio.h>

#include <stdlib.h>

#include "pilha.h"

int main()

{

Pilha p;

char teste[20];

char* teste2;

char* temp;

int i,j;

inicializa(&p);

scanf("%s", &teste);

for (i=0; teste != '\0'; i++) {

empilha(&p,&teste);

}

while ( estaVazia(&p) != TRUE ) {

temp = desempilha(&p);

if (*temp != '(') {

teste2 = temp;

}

}

printf("%s\n", teste2);

system("PAUSE");

return 0;

}

  • Membro VIP
Postado

Pelo que entendi, você está misturando conteúdos de C com os de C++. Você precisa trabalhar certamente com o C++. Percebi que você cria dois objetos(p1 e p2) para uma determinada classe chamada Pilha. O que você terá que fazer é sobrecarregar operadores de igualdade para que possa igualar uma pilha a outra diretamente, sem ter que fazer isso termo a termo.Dessa forma, você irá conseguir desempilhar todo o conteúdo de uma pilha em outra.Abraços.

  • Membro VIP
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!