Ir ao conteúdo
  • Cadastre-se
Visitante

C++ Inserção e remoção de frases

Recommended Posts

Visitante

Preciso de uma dica, bom tenho uma questão na qual eu vou ler uma quantidade de frases indefinidas(preferencialmente char ) na qual o limite de caracteres é de (100) e apos isso eu mostre as mesmas frases invertidas e uma opção de remover a ultima frase digitada .  

#include <iostream>
#include <cstring>
#include <limits>
#define t 100
using namespace std;
char nome[t];
int x,tamanho,cont=0;

void inserir(){
        char limite;

        cout << endl;
                      limite = cin.get();

        cout <<" Digite sua frase "<< endl;
        while (limite != '\n') {
          cin.get(nome,t);
                nome[cont] = limite;
                cont++;

        }

}

void mostrar(){
        for (x=strlen(nome); x >-1; x--) {
                cout << nome[x]<< endl;
        }
}

int main()
{
        int menu;
        while(true) {
                cout << "1-Insira sua frase "<< endl<< "2-Remover da fila "<<
                        endl << "3-Mostrar"<< endl << "4-Sair"<< endl;
                cin >> menu;

                system("clear");
                if(menu==1) {
                        inserir();
                }
                /*    if(menu==2) {
                            remover();
                    }*/
                if(menu==3) {
                        mostrar();
                }
                if(menu==4) {
                        return 616;
                }
        }
}
Cheguei em algo assim mas não funciona então não da para seguir essa logica .

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bernardo Kraczkowski      para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar , pois senão seu código fica faltando alguns caracteres ,        seu código está bom ,  só um pequeno erro na função inserir ,   e  melhor usar o comando switch no lugar desses if's  , então seu código com algumas modificações poderia ser assim  :

#include <iostream>
#include <cstring>
#include <limits>
#include <conio.h>
#include <ctype.h>
#define t 100
using namespace std;
char frase[100][t];/*variavel global pode ser acessada
                    em qualquer parte do programa       */
int x,tamanho,cont=0;
void inserir(){
    char op='s';
    do{
        cin.get();
        cout<<" Digite sua frase "<<endl;
        fflush(stdin);
        cin.get(frase[cont],t);
        cout<<frase[cont]<<endl;
        cont++;
        cout<<"Quer Inserir Outra Frase   S/N ";
        cin>>op;
    }while(toupper(op) != 'N');
    for(int j=0;j<cont;j++)
        cout<<j+1<<" Frase ==> "<<frase[j]<<endl;
    getch();
}
void mostrar(){
    cout<<"Frases Ao Contrario\n"<<endl;
    for(int j=0;j<cont;j++){
        int k=strlen(frase[j])-1;
        cout<<j+1<<"ª Frase --> ";
        for(int i=k;i>=0;i--){
            cout<<frase[j][i];
        }
        cout<<endl;
    }
    getch();
}
void remover(){
    cout<<"Removendo A Ultima Frase Digitada !    Tecle"<<endl;
    cont--;
    strcpy(frase[cont],"");/* isso apaga a frase nessa posição do vetor */
                           /* mas não é necessario, basta o cont--      */
    getch();
}
int main(){
    while(true){
        int menu=0;
        system("cls");
        cout<<"1-Insira sua frase "<<endl;
        cout<<"2-Remover da fila  "<<endl;
        cout<<"3-Mostrar          "<<endl;
        cout<<"4-Sair             "<<endl;
        fflush(stdin);
        cin>>menu;
        system("cls");
        switch(menu){
        case 1:
            inserir();
            break;
        case 2:
            remover();
            break;
        case 3:
            mostrar();
            break;
        case 4:
            return 616;
        }
    }
}

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá todos ... tudo bem?

 

Então, vocês não podem continuar com esta lógica, porque se fizerem errarão, pois o enunciado do problema deixa que, o número [ou quantidade] de frases é "indefinidas"  --- No geral essa dinâmica vem das Estruturas de Dados, e mais uma dica; "remover a última frase digitada", --- Ou seja, a última que entra é a primeira que sai [LIFO]. Clique-meWikipédia

Caso queiram algo no estilo C++ [sem muita implementação] use as list do C++. Clique-meCplusplus

 

Vejamos:

18 horas atrás, Bernardo Kraczkowski disse:

Preciso de uma dica, bom tenho uma questão na qual eu vou ler uma quantidade de frases indefinidas (preferencialmente char) na qual o limite de caracteres é de (100) e apos isso eu mostre as mesmas frases invertidas e uma opção de remover a ultima frase digitada . 

 

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  •    3
    Visitante

    Obrigado pela dica ajudou bastante.

     

    adicionado 4 minutos depois

    Muito obrigado por me mostrar essa logica ajudou muito.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Criar uma conta

    Crie uma nova conta em nossa comunidade. É fácil!

    Crie uma nova conta

    Entrar

    Já tem uma conta? Faça o login.

    Entrar agora





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×