• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gois

Erro ao comparar string's

4 mensagens neste tópico

oi,

struct Comandos{

char *comando_input;

};

...

                //construtor

ser_vivo Ser(id, x, y);

SerV.push_back(Ser);

...

if(strcmp(SerV[0].id, a[1].comando_input)==0) //ERRO

{

cout << "nomes iguais";

}

SerV é um vector onde guarda a informação relativa aos ser vivos, básicamente está me a dar erro na comparação..

" error C2664: 'strcmp' : cannot convert parameter 1 from 'std::string' to 'const char *'"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A comparação de strings da biblioteca STL de C++ é feita de forma mais directa:

string stringA, stringB;
(...)
if (stringA == stringB) (...)

ou se quiseres utilizar o strcmp:

if( strcmp(stringA.c_str(), stringb.c_str()) == 0) (...)

embora seja redundante.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se quiseres comparcaracter a caracter podes fazer assim

char v1[10], v2[10];

(...imaginando que o tamanho do vector é so de 9 caracter o 10 para o /0 ....e que os vectores ja tem os dados para comparar é so fazer isto...)

for(i=0; i<11; i++){
     if(v1[i]!=v2[i]){
             printf("Atençao!!!! as strings nao sao iguais\n\n\ caracter %c!=%c",v1[i],v2[i]);
          break;
    }
}

espero ter ajudado

cumps

EDIT: Atenção ao [ i ], utiliza a tag code e o Geshi para escrever código :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora