Problem compare byte

Hello
I'm using the library "IDxRFIDReader.h"
I have to compare the bed badge with that master but I do not work
After print the badge is EQUAL (POINT2)
But if (tagToPrint == tag1) do not work

help me

void printTag(byte *tagToPrint)

{
 Serial.println("read badge");
  for(int i=0; i<5; i++) {
     Serial.print(tagToPrint[i]);
  }
       Serial.println("master badge");
     for(int i=0; i<5; i++) {
     Serial.print(tag1[i]);
  }

// POINT2

   if (tagToPrint == tag1)
  {
      Serial.println("OK");

  }

}
  1. perché scrivi in Inglese nella sezione Italiana del forum ? ? ? :o

  2. In 'C' NON puoi comparare con == due stringhe classiche (char array), ma devi usare le funzioni che trovi nella AVR libc (... sempre automaticamente inclusa dal IDE), in <string.h> ed, in particolare, la strcmp().

Eventualmente, a seconda dei casi, guarda anche la memcmp().

Guglielmo

P.S.: Dedica del tempo a studiarti la AVR libc, è piena di funzioni utilissime.

gpb01:
In 'C' NON puoi comparare con == due stringhe classiche (char array)

Non solo, ma tra l'altro la tagToPrint non è neanche char* ma byte*, e della tag1[] non ha postato la definizione, per cui la vedo difficile consigliare se non posta qualcosa di più..

docdoc:
Non solo, ma tra l'altro la tagToPrint non è neanche char* ma byte*, e della tag1[] non ha postato la definizione, per cui la vedo difficile consigliare se non posta qualcosa di più..

Beh ... ci si basa su questa riga : "Serial.print(tag1[ i ]);" ... sperando sia un array di char o di byte :grin:

Guglielmo

Non pongo limiti alla fantasia umana.. :smiley: