elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  problema con if
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con if  (Leído 2,270 veces)
ansil

Desconectado Desconectado

Mensajes: 5


Ver Perfil
problema con if
« en: 25 Agosto 2010, 16:02 pm »

tengo un problema de C++ que no se resolver, ya que es lo más básico del mundo y hasta ahora nunca me había fallado ahí  :-\ :huh:

en mi programa hago lo siguiente:

aut=conjuntoAutores;
cad=aut.getNombre();
nom=aut.getNombreMay(cad);
cadena=c_nom;
nomMay=aut.getCadenaMay(cadena); if(nom==nomMay)

siendo c_nom el dato que se le pasa por linea de comandos, y cad el que cogemos del array. y ambas serán pasadas a mayusculas para asegurar una buena comparacion.

el programa funciona correctamente hasta que nom es igual a nomMay en cuyo caso salta directamente al else siguiente, no entrando en el if como debería.

¿Alguien sabe a que se puede deber esto? :-(


En línea

Kasi

Desconectado Desconectado

Mensajes: 76



Ver Perfil
Re: problema con if
« Respuesta #1 en: 25 Agosto 2010, 16:15 pm »

Podrías usar strcmp.
No recuerdo mucho de C++ pero creo que con eso te comparaba dos cadenas de texto.

Un saludo


En línea

ansil

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: problema con if
« Respuesta #2 en: 25 Agosto 2010, 16:23 pm »

me da este error si intento hacer la comparacion con strcmp:

error: cannot convert ‘std::string’ to ‘const char*’ for argument ‘1’ to ‘int strcmp(const char*, const char*)’


pero gracias de todas formas
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: problema con if
« Respuesta #3 en: 25 Agosto 2010, 16:37 pm »

Claro, porque estas usando strings y no char[]. Las cadenas del tipo string pueden compararse sin necesidad de strcmp. Utilizar el miembro  c_str no tendría sentido en este caso.

Si el problema es de lógica, el if-else seria algo así:

Código
  1.    if(str==str2)
  2.       cout<<"iguales"<<endl;
  3.    else
  4.       cout<<"no son iguales"<<endl;

Si el problema es por comportamiento indefinido en tu programa, postea el código completo o una mínima expresión compilable del problema (en caso que el código original sea muy largo), porque con lo posteado es imposible saber de donde proviene el error.

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
ansil

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: problema con if
« Respuesta #4 en: 25 Agosto 2010, 17:08 pm »

es un codigo demasiado extenso y esa parte depende de 2 clases diferentes como para poder simplificarlo en un pequeño codigo que compile. o yo al menos no soy capaz de hacerlo  :-[, ya que el problema es en el if, pero en ese caso en concreto.  :(
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: problema con if
« Respuesta #5 en: 25 Agosto 2010, 17:27 pm »

Entonces no puedo decirte mas que depures el programa revisando los valores de las cadenas relevantes en el error para ver si encuentras por donde puede venir el fallo.

Realmente no se puede saber cual es el error con el código que pusiste. Que devuelven los métodos utilizados? el procesamiento de los datos es correcto? hazte esas preguntas e intenta responderlas.

En principio verifica que contenido tienen las dos cadenas cuando supuestamente deberían ser iguales.

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines