Hay una forma de simplificar una comparacion de arrays

#1
Buenas a todos Uds. quisiera saber si hay una forma de igualar dos arrays. Me explico; tengo la siguiente sentencia:
Código:
                                if(password[0]==memoria[0] && password[1]==memoria[1] && password[2]==memoria[2]){
                                    //Acceso Concedido
                                    lcd_goto(3,1);
                                    __delay_ms(20);
                                    lcd_puts(Acceso Concedido);
                                    __delay_ms(1000);
                                    menu=3;
                                    posicion=2;
                                    cont=0;
                                    x=0;
                                    entorno(menu,posicion);
                                }else{
                                    lcd_goto(3,1);
                                    __delay_ms(20);
                                    lcd_puts(Acceso Denegado);
                                    __delay_ms(1000);
                                    menu=1;
                                    cont=0;
                                    x=0;
                                    entorno(menu,posicion);
                                }
Quisiera saber si hay una forma más simplificada de hacer esta comparación.

PD. Uso como compilador el Hi-Tech Compiler C de MPLAB ...
 
Última edición por un moderador:
#3
Si tienes muchos, pongamos N elementos a comparar coincidencia, puedes hacer esto (código ANSI C):

Código:
int i;
for(i=0,(i<N)&&(password[i]==memoria[i]),i++); 
if(i==N) {
// todos los elementos coinciden
}else{
// password[i] no coincide con memoria[i].
}
Pero para tres elementos sólo, es más eficiente evitar el bucle. Ahora si me dices para un password de 16 caracteres pues la cosa ya cambia.
 
Arriba