Abfrage eines char-array nach einer "Zeichenkette"

Hi,
wenn ich einen Eingangspuffer (char array) nach einer bestimmten Sequenz abfragen will, dann hab ich das bis jetzt immer so gemacht:

if (packetBuffer[0] == 'a' && packetBuffer[1] == 'b' && packetBuffer[2] == 'c') 
{
TextinString = true;
}

Kann man das auch etwas einfacher machen. Also nicht jedes char- abklappern, sondern direkt nach 'abc' abfragen?

Ich hoffe ihr versteht, was ich meine :cold_sweat:

Gruß/hk007

hk007:
Kann man das auch etwas einfacher machen. Also nicht jedes char1. abklappern, sondern direkt nach 'abc' abfragen?
[/quote]
Wie wär's mit strstr():
http://home.fhtw-berlin.de/~junghans/cref/FUNCTIONS/strstr.html
(inklusive Beispiel)

...

char  gesuchterTeilstring[]="abc";

if (strstr(packetBuffer, gesuchterTeilstring) != NULL)
    {
    TextinString = true;
    }
...

@voithian
Danke. Das probier ich mal.
Aber dazu muss ich meinen char array mit einer "/0" terminieren oder?

Ah ich hab gerade dein Beispiel gesehen. Da brauch ich gar keinen Pointer mehr?

@alle
ja, ich hab eine ähnliche Frage schon mal gestellt. Aber ich habs ehrlich nicht mehr gewusst. Und den Thread eigentlich auch aus meinem Gedächtnis gestrichen, da er in eine persönliche "Diskussion" anderer Mitglieder abgeglitten ist. :zipper_mouth_face:

hk007:
Aber dazu muss ich meinen char array mit einer "/0" terminieren oder?

Unbedingt! Die ganzen Funktionen für C-Strings (char-Array) funktionieren nur mit einem ordentlich abgeschlossenen ('\0') char-Array. Sonst rauschen sie hemmungslos über das Ende hinaus... :wink:

Ah ich hab gerade dein Beispiel gesehen. Da brauch ich gar keinen Pointer mehr?

Den Pointer brauchst du nur, wenn du wissen willst, ab welcher Stelle die beiden Strings übereinstimmen. Ansonsten (wenn keine Übereinstimmung da ist), hat der Pointer den Wert NULL, was nie eine gültige Adresse für einen Zugriff ist.