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
  Ein als "const" deklariertes Array übergeben Retian 5 126 08.11.2016 18:39
Letzter Beitrag: Tommy56
  String zusammensetzen Mathias 13 544 01.09.2016 21:15
Letzter Beitrag: Mathias
  String-Array füllen? torsten_156 9 444 08.07.2016 20:07
Letzter Beitrag: amithlon
  String in EEPROM Speichern BennIY 2 410 27.06.2016 10:23
Letzter Beitrag: BennIY
  Messwerte in Array speichern ArduinoMega2560 2 416 07.06.2016 16:30
Letzter Beitrag: SkobyMobil
  String - Buchstabenposition auswerten scritch 5 660 01.04.2016 16:25
Letzter Beitrag: rkuehle
  String nach UTF16 konvertieren (UTF-16) ThoEngel 0 299 20.02.2016 19:22
Letzter Beitrag: ThoEngel
  array von Php --> Arduino zu senden (ethernet) Mourti 0 441 27.01.2016 22:11
Letzter Beitrag: Mourti
  Problem mit char array Retian 12 997 03.01.2016 22:34
Letzter Beitrag: hotsystems
Exclamation String Zerlegen in drei Variablen Wampo 4 847 28.12.2015 01:07
Letzter Beitrag: Wampo

Gehe zu:


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