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


 


Tema destacado: [Aporte] Mejores practicas en Java


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  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 224 veces)
judithmateos

Desconectado Desconectado

Mensajes: 5


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

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 por engel lex » En línea

De{M}iuM

Desconectado Desconectado

Mensajes: 22


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

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
CoAdmin
***
Desconectado Desconectado

Mensajes: 12.535



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

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: 22


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

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
CoAdmin
***
Desconectado Desconectado

Mensajes: 12.535



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

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
Problema al comparar cadenas MD5
Desarrollo Web
{_The_Alwar_} 4 1,849 Último mensaje 17 Diciembre 2005, 23:48
por {_The_Alwar_}
¿Comparar dos cadenas de caracteres en php?
PHP
Netstat89 5 6,814 Último mensaje 1 Octubre 2012, 21:21
por Shell Root
Error al comparar cadenas
Programación C/C++
amchacon 1 772 Último mensaje 26 Enero 2013, 15:28
por amchacon
[C] Comparar 2 cadenas sin usar <string.h> « 1 2 »
Programación C/C++
Ataulfo7 16 3,417 Último mensaje 9 Abril 2015, 19:22
por Miseryk
ay forma de comparar 2 cadenas sin strcmp
Programación C/C++
masterkeyes 5 1,118 Último mensaje 17 Agosto 2015, 15:30
por ivancea96
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines