Ir ao conteúdo
  • Cadastre-se

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


Visitante

Posts recomendados

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 .

Link para o comentário
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 1
Link para o comentário
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 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...