Comparar strings c++

Survivor

bueno el problema no es el hecho de comparar 2 strings sino que el string procede de 2 estructuras distintas ya que al intentar comparar :

struct Nodo{
char nombre[20];
nodo *sig;
}

Nodo puntero;

char nombre[20];

puntero->nombre="hola";
nombre="hola";

puntero->nombre==nombre

segun este programa no es = nombre y nombre , alguien tiene alguna solucion?

gracias

Plenoptic

hay una librería en c para comparar cadenas... strings.h era? no me acuerdo mu bien, ahí encontrarás alguna función xa la comparación.

fack

No compares cadenas con ==
strcmp(cad1,cad2)

Survivor

he probado el strcmp y no funciona sigue sin decirme que son iguales , alguna explicacion?

TRuBi

Has tenido en cuenta que el strcmp devuelve 0 si dos cadenas son iguales y otro valor si son distintas??

Soltrac

A ver, no son strings propiamente dichos, son cadenas de caracteres (amos, vectores de chars)

Yo creo q 2 cadenas de caracteres ni puedes usar == ni strcmp (quizas si eh? q hace 1000 años q no uso esto xD)

Si quieres usar strings, usa strings, pero si usas cadenas de caracteres, comparalas caracter a caracter.

Quizas me confunda, pero mira por ahi :)

litri

Sino me equivoco la función strcmp precisamente hace eso Soltrac.

Como dicen por arriba, al comparar dos strings, si estos són iguales la función devuelve 0. Quizás no has tenido eso en cuenta.

if(strcmp(cad1,cad2)==0)
{
printf("Son iguales.");
}

Aparte creo que necesitas la libreria string.h sino has puesto otra que ya la incluya.

Soltrac

#7 no se...si tu lo dices sera verdad.

Yo es q pa estos casos en vez de usar char[] uso string (y mas si estas en C++ y no en C) y te quitas de complicaciones

Survivor

Ya esta todo aclarado la funcion devuelve 0 si son = , 1 si la primera es mayor y -1 si es menor

LoRTH

La funcion, devuelve la diferencia de los ord (Segun posicion ASCII) si son diferentes, de las dos cadenas, como minimo en C.

Usuarios habituales

  • LoRTH
  • Survivor
  • Soltrac
  • litri
  • TRuBi
  • fack
  • Plenoptic