Ir ao conteúdo
  • Cadastre-se

Dúvida em para imprimir strings no c++


Visitante
Ir à solução Resolvido por dontpanic,

Posts recomendados

Olá pessoal, vocês estão bonzinhos? Eu não estou conseguindo imprimir essa string! Como faço para imprimir strings no c++?

Da uma olhada no meu código:

 

#include <iostream>
#include <string>
using namespace std;

int main()
{
    int a,b,c;
    char u;
    cout<<"digite as bagaças ae: ";
    cin>>a,b,c;
    if (a>=b & b>=c){
        if (a==b & b==c){
            u = 'CHARUTO';
            }
            else if (a!=b & b!=c){
            u = 'EESCALENO';
            }
            else if (c==0){
            u = 'PLANO';
            }
            else if (b==c){
            u = 'CHARUTO';
            }
            else{
            u = 'COMPRIMIDO';
            }
    }
    else{
        u = 'ERRO - SEM CLASSIFICAÇÃO';
    }
    cout<<u<<endl; //Não estou conseguindo imprimir a string!!!
    return 0;
}
 

Link para o comentário
Compartilhar em outros sites

No C/C++ strings liteais são representadas usando aspas duplas.

Aspas simples são usadas apenas pra UM character.

 

"teste" ---> uma string de 5 characters contendo a palavra teste"a" ---> uma string de 1 character contendo a palavra a'a' ---> um character'abc' ---> ERRO.

 

Além disso uma string é representado sempre por um array de characters

 

char minhaString[10]; // ---> guarda uma string de 10 characterschar meuChar; // ---> guarda apenas UM character

 

Como uma string é um array, você não pode simplesmente usar o sinal de igual pra associar valores a ela. Você precisa usar funções próprias pra isso. Em C você usa strcpy, em C++ você pode usar o objeto std::string.

Link para o comentário
Compartilhar em outros sites

O cara, da uma olhada o que eu fiz, e tenta corrigir

 

#include <iostream>
#include <string.h>
#include <string>
#include <stdlib.h>
using namespace std;

int main()
{
    int a,b,c;
    char u[20];
    cout<<"digite as bagaças ae: ";
    cin>>a,b,c;
    if (a>=b & b>=c){
        if (a==b & b==c){
           std::string u="CHARUTO";
            }
            else if (a!=b & b!=c){
            std::string u = "ESCALENO";
            }
            else if (c==0){
            std::string u = "PLANO";
            }
            else if (b==c){
            std::string u = "CHARUTO";
            }
            else{
            std::string u = "COMPRIMIDO";
            }
    }
    else{
        std::string u = "ERRO - SEM CLASSIFICAÇÃO";
    }
    for (int i=0;i<strlen(u);i++){ //Tentei até usar o for, mas tá difícil!!!!
        cout << u <<endl;
    }
    return 0;
}
 

Link para o comentário
Compartilhar em outros sites

  • Solução

Tem dois erros aí... o primeiro é que você não precisa usar o "std::", porque lá em cima no código você já tá usando o namespace std.

 

O segundo é que você precisa pensar no objeto string como se fosse um tipo (assim como int, float, char, etc).

Então cada vez que você coloca no teu código "string u = ..." é como se você tivesse declarando a variável u novamente, o que é errado.

 

Só precisa declarar ela uma vez, no começo do código, assim como qualquer outra variável, e aí no resto do código você faz as atribuições.

 

#include <iostream>#include <string>using namespace std;int main(){    int a,b,c;    string u;    cout<<"digite as bagaças ae: ";    cin>>a,b,c;    if (a>=b & b>=c){        if (a==b & b==c){           u = "CHARUTO";            }            else if (a!=b & b!=c){            u = "ESCALENO";            }    ...    return 0;}

 

Além disso, por que você tá usando a <string.h> e <stdlib.h> se o seu código é em c++?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!