domingo, setembro 24, 2017
Home » Programação/ Scripts » C, C++, C# » Pilhas com String em C/C++

Pilhas com String em C/C++

O Mesmo princípio de Pilhas com inteiros, porém, agora com Strings

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

/////////////////////////////////////////////////////////////
////////////////////////// defines //////////////////////////
/////////////////////////////////////////////////////////////

#define MAX 100          // mudar tamanho da pilha
typedef char TIPO_STACK; // mudar o tipo de pilha

/////////////////////////////////////////////////////////////
///////////////////// variaveis globais /////////////////////
/////////////////////////////////////////////////////////////

TIPO_STACK stack[MAX];
int top = -1;

/////////////////////////////////////////////////////////////
/////////////////// protótipos de funções ///////////////////
/////////////////////////////////////////////////////////////

void pop( TIPO_STACK * );
void push( TIPO_STACK  );

////////////////////////////FUNÇÃO///////////////////////////
//////////////////////////// MAIN ///////////////////////////
/////////////////////////////////////////////////////////////
int main(void)
{
         char fraseOriginal[MAX], fraseInvertida[MAX];
         int i, tamanho;
         printf("n=== Checar existencia de palindromo ===nn    Entre com a frase a ser checada n(sem caracteres especiais e sem espacos) nnFrase: ");
         scanf("%s", fraseOriginal);

         //// coloca frase na pilha ////
         tamanho = strlen( fraseOriginal );

         for( i = 0; i < tamanho; i++ )
                   push( fraseOriginal[i] );
          //// tira frase da pilha, agora invertida ////
          for( i = 0; i < tamanho; i++ )
                    pop( &fraseInvertida[i] );  
          fraseInvertida[tamanho] = ‘{FONTE}’; // finaliza string invertida

          //// mostra frase invertida ////
          printf("Frase Invertida: %s", fraseInvertida);
          system("Pause");
          //// checa se as duas strings sao iguais ////
          if( !strcmp( fraseOriginal, fraseInvertida) )
                     printf("nResultado: Confere, palindromo existentenn");
          else
                     printf("nResultado: Nao conferenn");
           return ( 0 );
} // fim main   

////////////////////////////FUNÇÃO///////////////////////////
/// Nome: pop()                                           ///
/// Descricao: remove elemento da pilha                   ///
/////////////////////////////////////////////////////////////

void pop( TIPO_STACK *elemento )
{
          if( top == -1 ) // pilha vazia
                   printf("npilha vazian");
          else {
                    *elemento = stack[top];
                    top–;
          }
} // fim funcao

////////////////////////////FUNÇÃO///////////////////////////
/// Nome: push()                                                    ///
/// Descricao: insere elemento na pilha                    ///
//////////////////////////////////////////////////////////////

void push( TIPO_STACK elemento )
{
          if( top == MAX ) // pilha cheia
                    printf("npilha cheian");
          else {
      top++;  
                    stack[top] = elemento;
          }
} // fim funcao

Sobre Diego Duarte

Diego Duarte Atua como coordenador de NOC, toca um violãozinho nas horas vagas e tenta eternamente entender o que o fez escolher TI

Veja também!

Logo Powershell

Convertendo Powershell Scripts em Executáveis (ps1 para exe)

Olá, Pessoal A dica de hoje pode facilitar a vida de quem deseja automatizar tarefas …

Um comentário

Este artigo lhe foi útil? comente e ajude outros acrescentando seu ponto de vista!