Ich werte MQTT Messages aus und muss dazu Topics, die ankommen mit hinterlegten Topics vergleichen.
Da ich aber mehrere Sketches ähnlicher Art habe halte ich das mit den Bezeichnungen so allgemein wie möglich.
Ich definiere daher z.B. wie folgt:
#define HOSTNAME "esp8266_1"
#define MYTOPIC1 "mytopic1"
#define MYTOPIC2 "mytopic2"
Per MQTT kommt dann "esp8266_1/mytopic1"
Ich möchte dann erkennen können, ob nun mytopic1 oder mytopic2 angekommen ist.
Man könnte dass ja so machen, indem man einfach mit "esp8266_1/mytopic1" vergleicht,
also strcmp (mqtttopic, "esp8266_1/mytopic1").
Ich möchte aber gerne mit MYTOPIC1 vergleichen, da ich die selben topics unter Umständen auch per serieller Schnittstelle an ein Arduino weiter sende und da den HOSTNAME nicht mitschicken möchte.
Aktuell gehe ich daher wie folgt vor:
strcpy (l_str, HOSTNAME);
strcat (l_str, "/");
strcat (l_str, MYTOPIC1 );
if (strcmp (mqtttopic, l_str) == 0)
Um mir den mständlichen Mist mit dem Zusammenstringen von HOSTNAME "/" und MYTOPIC1 zu sparen, suche ich nun eine Möglichkeit, mit der ich einfach prüfen kann, ob ein Teilstring in einem String enthalten ist.
Ich verwende char arrays und nicht etwa die Klasse String.
Kurz gefragt: wie kann ich am einfachsten erkennen, ob MYTOPIC1 in mqtttopic enthalten ist?