• Viernes 8 de Noviembre de 2024, 13:05

Autor Tema:  Un Dudan Con Comparacion De Cadenas  (Leído 1774 veces)

Perrero

  • Miembro MUY activo
  • ***
  • Mensajes: 209
    • Ver Perfil
Un Dudan Con Comparacion De Cadenas
« en: Sábado 25 de Noviembre de 2006, 15:16 »
0
Buenas, tengo una duda y espero que me puedan ayudar.

Cuando inserto una cadena en una variable, por ejemplo nom="texto" y utilizo la funcion

strcmp(nom,"texto");

para saber si son iguales, me dice que si. Pero si ingreso un texto y lo comparo de la siguiente manera:

nom=="texto"

Me dice que es falso, a que se debe esto, supuestamente no deben de botar lo mismo?, osea el ultimo no debe salir tbm verdadero.  :hola:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #1 en: Sábado 25 de Noviembre de 2006, 15:55 »
0
No, ese == compara que apunten a la misma direccion y strcmp compara que los caracteres sean los mismos.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #2 en: Sábado 25 de Noviembre de 2006, 17:29 »
0
primero y principal no podes insertar un string en una variable, vas a necesitar un vector.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #3 en: Sábado 25 de Noviembre de 2006, 17:39 »
0
Cita de: "AnioN"
primero y principal no podes insertar un string en una variable, vas a necesitar un vector.
Si la variable es char * eso funciona perfectamente, es una simple asignacion de la direccion de memoria que ocupa la cadena en la seccion de datos (.rdata seguramente) y los vectores no tienen nada que hacer mientras no haya ningun "conjunto" de cadenas como en este caso.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

_aioros_

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #4 en: Viernes 1 de Diciembre de 2006, 17:34 »
0
Cita de: ""Perrero""
para saber si son iguales, me dice que si. Pero si ingreso un texto y lo comparo de la siguiente manera:

nom=="texto"

Me dice que es falso, a que se debe esto, supuestamente no deben de botar lo mismo?, osea el ultimo no debe salir tbm verdadero
Creo que te sale falso, porque las cadenas solo se pueden comparar con la funcion que pusiste antes "strcmp", lo que haces en esta parte [nom=="texto"] es que estas comparando el valor pero en ascii de cada letra y  por eso tu resultado es flaso.
si estoy mal diganme no soy muy bueno  :lol:  :P

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #5 en: Viernes 1 de Diciembre de 2006, 17:40 »
0
Cita de: "_aioros_"
lo que haces en esta parte [nom=="texto"] es que estas comparando el valor pero en ascii de cada letra y  por eso tu resultado es flaso.
si estoy mal diganme no soy muy bueno  :lol:  :P
estas mal.. sale falso porque esta comparando dos apuntadores, es decir estas comparando las dos direcciones de memoria, no su contenido.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

_aioros_

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #6 en: Viernes 1 de Diciembre de 2006, 17:47 »
0
Cita de: ""JuanK""
estas mal.. sale falso porque esta comparando dos apuntadores, es decir estas comparando las dos direcciones de memoria, no su contenido.
Gracias por corregirme amigo :D de los errores se aprende <_< , espero que con esto quede resuelto el problema de Perrero

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #7 en: Viernes 1 de Diciembre de 2006, 17:58 »
0
¿Con eso quedo resulto? ¿De verdad? Entonces no se para que me moleste en escribir la primera respueta de este hilo ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #8 en: Sábado 2 de Diciembre de 2006, 12:16 »
0
:P

Quiza esto ayude:

Código: Text
  1.  
  2.  #include <string.h>
  3.  #include <stdio.h>
  4.  
  5. int main(void)
  6.  {
  7.     char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
  8.     int ptr;
  9.  
  10.     ptr = strcmp(buf2, buf1);
  11.     if (ptr > 0)
  12.        printf("buffer 2 is greater than buffer 1\n");
  13.     else
  14.        printf("buffer 2 is less than buffer 1\n");
  15.  
  16.     ptr = strcmp(buf2, buf3);
  17.     if (ptr > 0)
  18.        printf("buffer 2 is greater than buffer 3\n");
  19.     else
  20.        printf("buffer 2 is less than buffer 3\n");
  21.  
  22.     return 0;
  23.  }
  24.  
  25.  
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #9 en: Sábado 2 de Diciembre de 2006, 16:03 »
0
...y con eso queda resuelto  :P
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Un Dudan Con Comparacion De Cadenas
« Respuesta #10 en: Sábado 2 de Diciembre de 2006, 17:15 »
0
Efectivamente, ahi tenemos la resolucion a un problema ... vaya a saber quien lo tiene, eso es otra historia.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.