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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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

Desconectado Desconectado

Mensajes: 5


Ver Perfil
comparar cadenas
« en: 31 Agosto 2017, 19:51 pm »

Muy buenas estoy el 1º de ingeneria informatica, y me piden un ejercicio de comparar dos cadenas, simplemente decir si son iguales o no, y n se que me esta fallando que siempre me devuelve falso, alguien podria ayudarme por favor? mil gracias (me estoy volviendo loca :P)por cierto todo en c++
escribo el codigo abajo,
Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. /*declaracion de funciones*/
  5. bool iguales (string cadena1,string cadena2);
  6.  
  7. int main (void){
  8.  
  9. string cadena1,cadena2;
  10.  
  11.  
  12. cout<<"escriba la primera palabra: "<<endl;
  13. getline(cin,cadena1);
  14. cout<<"escriba la segunda palabra: "<<endl;
  15. getline(cin,cadena2);
  16.  
  17.  
  18.  
  19.  
  20.  
  21. }
  22. /*funcion iguales*/
  23. bool iguales (string cadena1,string cadena2){
  24.  
  25. if (cadena1==cadena2){
  26.  
  27.    return true;}
  28.    else
  29.        return false;
  30. }
  31.  

Engel Lex: Los codigos deben ir en etiquetas GeSHi


« Última modificación: 31 Agosto 2017, 19:59 pm por engel lex » En línea

De{M}iuM

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: comparar cadenas
« Respuesta #1 en: 31 Agosto 2017, 20:01 pm »

Buenas tardes judith.

Lo que debes hacer es comparar en primer lugar si tienen la misma longitud y a continuación comparar carácter a carácter

Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. /*declaracion de funciones*/
  6. bool iguales (string cadena1,string cadena2);
  7.  
  8. int main (void){
  9.  
  10. string cadena1,cadena2;
  11.  
  12. cout<<"escriba la primera palabra: "<<endl;
  13. getline(cin,cadena1);
  14. cout<<"escriba la segunda palabra: "<<endl;
  15. getline(cin,cadena2);
  16.  
  17. if (iguales(cadena1,cadena2)) {
  18. cout << "Son iguales" << endl;
  19. }
  20. else {
  21. cout << "Son distintas" << endl;
  22. }
  23.  
  24. return 0;
  25. }
  26.  
  27. /*funcion iguales*/
  28. bool iguales (string cadena1,string cadena2){
  29. if (strlen(cadena1) == strlen(cadena2)) {
  30. for (int i=0; i<strlen(cadena2); i++) {
  31. if (cadena1[i] != cadena2[i]) {
  32. return false;
  33. }
  34. }
  35. return true;
  36. }
  37. return false;
  38. }


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: comparar cadenas
« Respuesta #2 en: 31 Agosto 2017, 20:03 pm »

las cadenas son arrays, si hacer cadena1==cadena2 en realidad estás comparando los punteros base de ellas... es decir solo estás viendo si están en la misma dirección de memoria o no...

para comparar cadenas debes usar de la librería string
Código
  1. strcmp(cadena1,cadena2)

si es 0 son iguales, si no es 0, no son iguales
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
De{M}iuM

Desconectado Desconectado

Mensajes: 39


Ver Perfil
Re: comparar cadenas
« Respuesta #3 en: 31 Agosto 2017, 20:05 pm »

que está aprendiendo cohone!! no le digas que use strcmp o no descubrirá que los arrays nos rodean jajajaja y con los punteros lo va a flipar  ;D
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: comparar cadenas
« Respuesta #4 en: 31 Agosto 2017, 20:10 pm »

eso fue por no decir

Código
  1. if (cadena1.compare(cadena2) != 0)
XD
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Comparar cadenas sin usar strcmp « 1 2 »
Programación C/C++
Rockmore 12 20,490 Último mensaje 25 Octubre 2010, 07:01 am
por do-while
Intento comparar cadenas [novato] « 1 2 3 »
Programación C/C++
barnix456 20 12,286 Último mensaje 7 Mayo 2012, 20:37 pm
por barnix456
¿Comparar dos cadenas de caracteres en php?
PHP
Netstat89 5 10,833 Último mensaje 1 Octubre 2012, 21:21 pm
por Shell Root
Error al comparar cadenas
Programación C/C++
amchacon 1 2,306 Último mensaje 26 Enero 2013, 15:28 pm
por amchacon
Problema al comparar cadenas de caracteres [C]
Programación C/C++
S4ms3pi0l__ 3 2,894 Último mensaje 27 Noviembre 2017, 20:00 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines