Ir ao conteúdo
  • Cadastre-se

renan.longlong

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. E isso mesmo não tinha pensado nisso dados jae um vetor de caracter, fiz um breve teste empilho só que agora preciso mudar a forma de desempilha vou testar a noite pois no momento ta um corre da ***** valeu atlos
  2. ola atlos acho que ficou meio complicado mesmo rsrs...esses 7 vezes e que na verdade so um funciona o resto esta como comentário.. esse strcpy eu uso para jogar valor de string na estrutura da pilha por ser uma string ele so copia se usa strcpy caso contrario não nao joga na pilha ex: com string strcpy(novo->dados,inteiro1) <<< dessa forma ele ta copiando a palavra inteira porém o que eu quero que copie apenas caracter por caracter no for no caso deveria ser assim strcpy(novo->dados,inteiro1) esse i refere-se a posicao do vetor do caracter que eu quero . Se não fosse string eu poderia simplesmente usar novo->dados = nomedavariavel; pronto ja estaria na pilha mas no meu caso e uma string ...e eu nao estou conseguindo passar caracter por caracter de uma string completa..... Desde já agradeço a atenção pelo post
  3. Galera o que ta ocorrendo, não estou conseguindo carregar o caracter na pilha eu consigo e ja fiz alguns programas com inteiros com strings também porém com caracter de uma string não consigo passar EX: SANTOS eu tenho que passar somente o S depois o A,N,T,O,S pra depois eu desempilhar e ter o inverso porém não estau conseguindo transportas. La no código eu vou comenta a parte que esta dando trabalho [noparse][code][/code][/noparse] #include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h> // Definicao da estrutura da pilhastruct pilha{char dados[200];struct pilha *prox;}; // Prototipo das funcoeschar empilha(struct pilha **p); struct pilha *desempilha(struct pilha **p); int main(){ // Topo da pilhastruct pilha *p = NULL; // Ponteiro para armazenar um elemento desempilhadostruct pilha *desempilhado = NULL; // Variaveis auxiliaresint i, n; // Semeia o gerador de numeros aleatoriossrand(time(NULL)); printf("Empilhando...\n");char inteiro1[200];char auxint[200];int a2=0;int z=0; empilha(&p);// Desempilha e imprime todos os valores da pilhawhile ((desempilhado = desempilha(&p)) != NULL){printf("Desempilhado: %s\n", desempilhado->dados); } } /* * Funcao responsavel por empilhar um valor na pilha. * e o valor a ser empilhado. */ char empilha(struct pilha **p){ char inteiro1[200];char auxint[200];int a2=0;int z=0;int i=0;// Ponteiro para o novo elemento a ser alocadostruct pilha *novo = NULL; // Aloca o novo elementonovo = (struct pilha *) malloc(sizeof(struct pilha)); // Verifica se a alocacao teve exitoif (novo != NULL){ printf("\nInsira um valor carai\n"); gets(inteiro1); fflush(stdin); a2=strlen(inteiro1); for(i=0; i<a2; i++) { //strcpy(aux->nome,n); //strcpy(auxint[i],inteiro1[i]); auxint=inteiro1[i]; //strcpy(novo->dados,auxint); strcpy(novo->dados,inteiro1); //novo->dados = inteiro1; printf("Empilhado: %c\n", inteiro1[i]);fflush(stdin); } //galera essa parte de cima nao consigo colocar so o caracter da palavra que digitei para entrar na pilha//so consigo se eu joga a string inteiro se observar tentei varios modos não sei se é falta de lógica minha mesmo ou comando errado //mesmo // Insere o valor no novo elemento//strcpy(aux->nome,n);// strcpy(novo->dados,inteiro1); // Verifica se a pilha esta vazia, se estiver vazia, o ponteiro// para o proximo elemento sera NULLif (*p == NULL){novo->prox = NULL;} else { // Caso contrario, o novo elemento assume o topo, e o proximo// elemento para a ser o antigo toponovo->prox = *p;} // O topo passa a ser o novo elemento*p = novo; } else {printf("Erro ao alocar memoria!\n");return 1;} return 0; } /* * Funcao responsavel por desempilhar um valor da pilha. Recebe como parametro * um ponteiro para um ponteiro para o primeiro elemento da pilha */struct pilha *desempilha(struct pilha **p){ // Variavel que armazenara o valor desempilhado temporariamentestruct pilha tmp; // Ponteiro auxiliarstruct pilha *aux = NULL; // Ponteiro para o elemento que sera desempilhadostruct pilha *del = NULL; // Se a pilha nao estiver vazia...if (*p != NULL){ // Aloca o elemento que recebera o valor a ser desempilhadoaux = (struct pilha *) malloc(sizeof(struct pilha)); // Obtem o valor do elemento desempilhadotmp = **p; // Armazena um ponteiro para o valor do elemento desempilhadoaux = &tmp; // Armazena o endereco do elemento a ser excluidodel = *p; // Altera o topo para o proximo elemento da pilha*p = (*p)->prox; // Exclui o elemento desempilhadofree(del); // Retorna o ponteiro para o valor desempilhadoreturn aux; } else {return NULL;}}

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!