Título: como puedo comparar dos cadenas de texto? Publicado por: linux1 en 15 Octubre 2010, 06:06 am hola lo que pasa es que quiero poder comparar dos cadenas de texto "char" por medio de un if-else
por ejemplo yo tengo estos dos valores aba y abc vemos que son diferentes por el ultimo caracter quisiera saber como puedo comparar estos con la instruccion if y else de c :) Título: Re: como puedo comparar dos cadenas de texto? Publicado por: Lunfardo en 15 Octubre 2010, 07:20 am si es como yo entendi:
anda comporadan caracter a caracter( osea el primero con el primero, el segundo con el segundo,etc) mientras sea verdadero que siga avanzando, y si es falso que informe lo que vos quieras, bye =) Título: Re: como puedo comparar dos cadenas de texto? Publicado por: Akai en 15 Octubre 2010, 09:44 am La cuestión es:
A) Si quieres que te diga la primera diferencia: compara carácter a carácter hasta que encuentres una difernecia, sino, devuelve algún mensaje como que son iguales. Si encuentras la diferencia, devuelve algo como que son diferentes y para el bucle. B) Si quieres que te las diga todas: compara carácter a carácter mientras no llegues a la longitud de las cadenas, y en cada diferencia, di en que posición está. Nótese que no he incluido ninguna medida de control de longitudes y demás, eso ya es tema a parte. Título: Re: como puedo comparar dos cadenas de texto? Publicado por: darkvidhack en 15 Octubre 2010, 13:28 pm Bueno, lo primero, tu lo que quieres, una cadena de texto, no es "char", sino "string" , veamos:
#include <iostream> using namespace std; int main () { string primera_cadena="abc"; string segunda_cadena="aba"; if (primera_cadena==segunda_cadena) cout << "Las dos cadenas son iguales"; else cout << "Las cadenas son distintas"; return 0; } Espero haberte ayudado ;) Título: Re: como puedo comparar dos cadenas de texto? Publicado por: Eternal Idol en 15 Octubre 2010, 13:53 pm darkvidhack: no necesariamente y menos en C donde no existen.
Con un solo if-else mejor usar strcmp (http://www.cplusplus.com/reference/clibrary/cstring/strcmp/) diria yo. Título: Re: como puedo comparar dos cadenas de texto? Publicado por: xassiz~ en 15 Octubre 2010, 14:43 pm Código
Título: Re: como puedo comparar dos cadenas de texto? Publicado por: Eternal Idol en 15 Octubre 2010, 15:04 pm pablomi, lee el enlace que deje:
"A zero value indicates that both strings are equal." La logica o el mensaje del codigo que dejaste esta mal. Título: Re: como puedo comparar dos cadenas de texto? Publicado por: Littlehorse en 15 Octubre 2010, 15:20 pm Yo usaría strncmp
Código
Con sizeof por supuesto siempre que el arreglo sea local, de lo contrario strlen. Igualmente tambien se puede pasar otro valor, uno menor por ejemplo para comparar 2 caracteres. El ejemplo de cplusplus (http://www.cplusplus.com/reference/clibrary/cstring/strncmp/): Código
Saludos PD: linux1, hay muchos post sobre este tema, utiliza el buscador! Título: Re: como puedo comparar dos cadenas de texto? Publicado por: xassiz~ en 15 Octubre 2010, 15:22 pm pablomi, lee el enlace que deje: Perdón, ya sabía su uso, se me pasó lo del mensaje "diferentes" por "iguales" :xD"A zero value indicates that both strings are equal." La logica o el mensaje del codigo que dejaste esta mal. |