String an Semikolon splitten und Inhalt wieder ausgeben?

gregorss:
Das stimmt, aber ein const char* in ein char* zu kopieren sollte für niemanden ein Problem darstellen.

Wer das kann, nimmt gleich char * und lässt Strings liegen :wink:

Gruß Tommy

Tommy56: Wer das kann, nimmt gleich char * und lässt Strings liegen ;)

Naja, es führen viele Wege zu char*. Manchmal über den Umweg String.

Gruß

Gregor

Hier ist Code um vier Zahlen einzulesen, per strtok() zu Splitten und per atoi() in Integer zu wandeln: http://forum.arduino.cc/index.php?topic=430527.msg2967965#msg2967965

Für drei mal lässt man halt einfach einmal strtok() weg

Wenn man statt dessen erst mal den Teil-String haben will kann man das machen:

char* str1 = strtok(serialBuffer, ",;");
char* str2 = strtok(NULL, ",;");
....

C Strings werden mit strcmp() verglichen! Nicht mit == !!

Für die Einlese-Funktion kann man auch fertige Arduino Funktionen verwenden, aber die blockieren, was oft Probleme macht. Besser ist also das selbst zu schreiben und jede Zeile die man sendet mit einem Linefeed anzuschließen um das Ende des Strings zu markieren

Überlege dir aber mal generell was du hier genau machen willst. Dinge per Strichpunkt zu trennen ist für Zahlen sinnvoll. Oder für Text-Kommandos gefolgt von Zahlen. Aber nicht unbedingt für drei verschiedene Text Kommandos. Da ist es besser man schließt jedes für sich mit einem Linefeed ab und behandelt diese damit als völlig unterschiedliche Strings.