Forum: Mikrocontroller und Digitale Elektronik String auswerten


von greenhorn (Gast)


Lesenswert?

Wie durchsuch ich am einfachsten einen String nach einem Zeichen?
in meinen uC bekommen ich von einem Sensor einen String mit führeneden
0x55´s, dennen folget ein definiertes Startzeichen.
Da ich nicht weiß wie viele 0x55´s es sind muss ich deren Anzahl
ermitteln.
der code in einer For-schleife 10mal ausgeführt ist nicht zuverlässig
obwohl dach den führenden 0x55´s keine mehr verwendet werden, so dass
eigentlich Header = der Anzahl der 55´s sein sollte
if (String [x] == 0x55)
       {
         Anzahl55 ++;
       }
Hat jemand einen Tip für mich wie ich es besser machen kann?

von Karl H. (kbuchegg)


Lesenswert?

Du solltest Dir ein Buch ueber C kaufen und lesen.
zb. gibt es da die Funktion strrchr();

  char* pLast = strrchr( String, 0x55 );

Und du hast einen Zeiger auf das letzte 0x55 in String.

> der code in einer For-schleife 10mal ausgeführt

Warum 10 mal, du kennst doch die Anzahl nicht.
Aber: Die Abbruchbedingung in der for-Schleife kann
alles moegliche sein. Zb. kann die Abbruchbedingung
aussagen: Die Schleife wird solange wiederholt, wie
das Zeichen ein 0x55 ist (und natuerlich das String
Ende nicht erreicht ist):

  for( x = 0; String[x] != '\0' && String[x] == 0x55; x++ )
    ;

von Rahul (Gast)


Lesenswert?

Anzahl55++;
for( x = 0; String[x] != '\0' && String[x] == 0x55; x++ )
    Anzahl55++;
Im Kernighan&Ritchie gibt das zu dem Thema ein paar Beispiele...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.