Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SojatDotar en 3 Diciembre 2015, 04:17 am



Título: Pregunta..Comparación de registro
Publicado por: SojatDotar en 3 Diciembre 2015, 04:17 am
Buenas, tengo la siguiente duda, puedo comprar dos registro? es decir si quiero ver si son iguales dos registro se puede?


Título: Re: Pregunta..Comparación de registro
Publicado por: crack81 en 3 Diciembre 2015, 04:39 am
En c++ no se pueden comparar dos registros nativamente asi que tienes varias opciones una de ellas es crear una funcion que compare dos registros como acontinuacion

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. typedef struct{
  5.    int entero;
  6.    float decimal;
  7.    string cadena;
  8. } Registro;
  9.  
  10. //la funciona compara dos registros del tipo Registro si son iguales retorna true sino dara false
  11. bool compararRegistros(Registro r1,Registro r2){
  12.  
  13.   return ((r1.cadena==r2.cadena) && (r1.entero==r2.entero) && (r1.decimal==r2.decimal));
  14.  
  15. }
  16.  
  17. int main()
  18. {
  19.   Registro r1;
  20.   r1.cadena="hola mundo";
  21.   r1.entero=34;
  22.   r1.decimal=4.444;
  23.  
  24.   Registro r2;
  25.   r2.cadena="otra cosa";
  26.   r2.entero=3333;
  27.   r2.decimal=222.222;
  28.  
  29.  
  30.   if(compararRegistros(r1,r2)){
  31.     cout<<"son iguales"<<endl;
  32.   }
  33.   else{
  34.     cout<<"No son iguales "<<endl;
  35.   }
  36.  
  37.   //copiamos el contenido de regitros uno al registro dos
  38.   r2=r1;
  39.    //volvemos a comparar
  40.   if(compararRegistros(r1,r2)){
  41.     cout<<"son iguales"<<endl;
  42.   }
  43.   else{
  44.     cout<<"No son iguales "<<endl;
  45.   }
  46.  
  47.    return 0;
  48. }
  49.  

[MOD] Al publicar código usar las etiquetas GeSHi.


Título: Re: Pregunta..Comparación de registro
Publicado por: ivancea96 en 3 Diciembre 2015, 09:06 am
Si hablamos de clases os estructuras en C++, existe el operador ==.

Código
  1. class T{
  2. public:
  3.    int data;
  4.    bool operator==(const T& t){return t.data==data;}
  5. };
  6.  
  7. int main(){
  8.    T a,b;
  9.    if(a==b) ...
  10. }

Si hablamos de C, habría que hacer una función externa a la estructura como comenta crack81.


Título: Re: Pregunta..Comparación de registro
Publicado por: SojatDotar en 4 Diciembre 2015, 02:51 am
Muchas gracias, si la pregunta era en torno a C++ ;D