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 übergeben oOSpikeOo 9 253 28.03.2017 19:47
Letzter Beitrag: georg01
  Array länge oOSpikeOo 4 115 28.03.2017 18:57
Letzter Beitrag: oOSpikeOo
  String in tinygps++ einlesen hoko 17 566 07.03.2017 15:40
Letzter Beitrag: hoko
  String -> Char *gelöst* Binatone 2 294 31.01.2017 11:08
Letzter Beitrag: Binatone
  ascii string to int array konvertieren renid55 3 269 29.12.2016 11:49
Letzter Beitrag: Tommy56
  String / HTTP Request Marc2014 4 405 23.12.2016 15:42
Letzter Beitrag: Tommy56
  Ein als "const" deklariertes Array übergeben Retian 5 263 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String zusammensetzen Mathias 13 1.281 01.09.2016 21:15
Letzter Beitrag: Mathias
  String-Array füllen? torsten_156 9 722 08.07.2016 20:07
Letzter Beitrag: amithlon
  String in EEPROM Speichern BennIY 2 728 27.06.2016 10:23
Letzter Beitrag: BennIY

Gehe zu:


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