INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
String in Array zerlegen
04.07.2015, 22:28
Beitrag #1
String in Array zerlegen
Hallo,

ich habe eine absolute Anfängerfrage, jedoch wusste ich nicht so recht wonach ich googlen sollte.

Ich habe folgenden String: "Hallo, mein, Name, ist, Louis".

Wie kann ich nun diesen String zerlegen anhand der Kommata?
Mir ist bewusst, dass ich mittels substring und indexof das ganze mittels einer Schleife machen könnte allerdings bin ich auf der suche nach einer "besseren" Möglichkeit

Gruß
GreenTee
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.07.2015, 22:57
Beitrag #2
RE: String in Array zerlegen
Hi,
die beste Lösung ist vielleicht, es bleiben zu lassen. Kannst Du etwas mehr Kontext geben?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.07.2015, 23:00
Beitrag #3
RE: String in Array zerlegen
Hey,

also ich bekomme über die Serielle Schnittstelle verschiedene Daten, welche mit einem Kommata voneinander getrennt sind.
Nun möchte ich gerne die einzelnen Werte in Variablen laden.

Ich kenne nur aus dem PHP-Bereich die Funktion explode (http://php.net/manual/de/function.explode.php) die ich halt in der Art für die Arduino IDE suche..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.07.2015, 08:54
Beitrag #4
RE: String in Array zerlegen
Hi,
Dein Link liefert mir nur ein HTTP 404.

Ich würde in dem Fall die Eingabe wahrscheinlich gar nicht erst in eine Zeichenkette laden, sondern schon während der Kram von Serial gelesen wird in die Variablen "einsortieren". D.h. jedesmal, wenn ein Komma kommt das bisher gelesene in die entsprechende Variable schieben und Deinen Eingabepuffer leeren.
Da ich natürlich Dein Programm nicht kenne muss ich ein paar Annahmen treffen...

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.07.2015, 09:03 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2015 11:43 von HaWe.)
Beitrag #5
RE: String in Array zerlegen
für blutige Anfänger bezgl. C-Funktionen sehr schwierig.
Fortgeschrittene wissen es eigentlich sowieso schon...:
Code:
Wiederhole: {
- suche pos ',' in Gesamt-String
- kopiere von 0 bis pos-1 in Teilstring
- kopiere Rest von Gesamtstring von pos+1 bis Ende in neuen Gesamtstring
} solange ein ',' gefunden wird

Der letzte Gesamtstring enthält dann den letzten Teilstring.

Es gibt dazu eine ANSI-C-Funktion, diese lautet strtok().
http://www.cplusplus.com/reference/cstring/strtok/
In deinem Falle würde ich als (edit : ) Token-Separator "," oder ", " (mit Komma und ggf auch Komma mit Leerzeichen) verwenden.

Ein paar weiterer Stringfunktionen, die es vereinfachen, stehen hier:
http://www.mindstormsforum.de/viewtopic....429#p66429
(letzter Code-Block).

Mit strcpy oder besser strncpy und wann und wo zusätzliche String-Terminatoren '\0' gebraucht werden und wo nicht musst du dich aber MINDESTENS auskennen.
Hier ist die C/C++-Referenz:
http://www.cplusplus.com/reference/cstring/strcpy/
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.07.2015, 10:29
Beitrag #6
RE: String in Array zerlegen
Hi,
tatsächlich sollte strtok und strtok_r von der Arduino-IDE unterstützt sein. Hier aus der string.h:
Code:
extern char *strtok(char *, const char *);
extern char *strtok_r(char *, const char *, char **);
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.07.2015, 14:53 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2015 17:05 von rkuehle.)
Beitrag #7
RE: String in Array zerlegen
Oder es so machen wie es Thorsten weiter oben schon angedeutet hat:
Zitat:Ich würde in dem Fall die Eingabe wahrscheinlich gar nicht erst in eine Zeichenkette laden, sondern schon während der Kram von Serial gelesen wird in die Variablen "einsortieren".
Müsste sich doch mit readBytesUntil() aus der Serial-Klasse (in einer Schleife?) machen lassen?
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.07.2015, 19:35
Beitrag #8
RE: String in Array zerlegen
Code:
#include <stdio.h>
#include <string.h>

void setup()
{
  Serial.begin(9600);
  
char* value =  "Hallo, mein, Name, ist, Louis";
char* token = strtok(value, ",");
char* te = token;
token= strtok(0, ",");
char* tz = token;
token = strtok(0, ",");
char* td = token;
token = strtok(0, ",");
char* tv = token;
token = strtok(0, ",");
char* tf = token;
  
Serial.println(te);
Serial.println(tz);
Serial.println(td);
Serial.println(tv);
Serial.println(tf);  
}


void loop()
{
}

nicht elegant, aber so mache ich es. Bitte keine Haue von Chefprogrammierern..Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  String nach Byte Array in ASCII-Codierung nexus1212 7 437 05.11.2017 14:36
Letzter Beitrag: Tommy56
  char-Array nach int? torsten_156 8 540 04.11.2017 18:44
Letzter Beitrag: Tommy56
  3 Stück LED 8x8 Matrix via Array ansteuern Bino87 10 912 30.10.2017 19:33
Letzter Beitrag: Bino87
  pinMode mit array luj1990 6 829 22.07.2017 10:24
Letzter Beitrag: Binary1
  String vergleichen georg01 15 1.160 18.07.2017 20:35
Letzter Beitrag: Tommy56
  String.charAt() ardun 3 433 02.07.2017 15:28
Letzter Beitrag: Tommy56
  Aus char string machen metzgefa 1 520 06.05.2017 15:15
Letzter Beitrag: Tommy56
  Array-Index zu groß: Tückisches Verhalten GuaAck 6 475 05.05.2017 22:03
Letzter Beitrag: Tommy56
  Array mit Serial.read befüllen Gonmaus 4 619 01.05.2017 09:13
Letzter Beitrag: Gonmaus
  String übergeben oOSpikeOo 9 962 28.03.2017 19:47
Letzter Beitrag: georg01

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste