www.mikrocontroller.net

Forum: Compiler & IDEs Text parsen und auf einzelne Strings verteilen


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte gerne ein Feld von char's parsen. Die einzelnen Wörter sind 
durch ',' getrennt. Die Länge der Wörter ist  nicht gleich und ich 
möchte nicht zuviel Speicherplatz verbrauchen. Für jedes neue Wort soll 
ein neuer String angelegt werden. Wie macht man soetwas am einfachsten?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael wrote:
> Hallo,
>
> ich möchte gerne ein Feld von char's parsen. Die einzelnen Wörter sind
> durch ',' getrennt. Die Länge der Wörter ist  nicht gleich und ich
> möchte nicht zuviel Speicherplatz verbrauchen. Für jedes neue Wort soll
> ein neuer String angelegt werden. Wie macht man soetwas am einfachsten

strtok ist eine Möglichkeit.

Eine andere wäre es, den Quellstring einfach Zeichen für
Zeichen durchzugehen. Mann merkt sich den Anfang des Strings
und wenn man bei Durchgehen einen ',' vorfindet, wird der Teilstring
vom Anfang des Textes bis zum ',' in einen neuen String
umkopiert. Danach hat man wieder einen neuen Anfang und sucht
weiter bis zum nächsten ',' etc. etc.

Mal es dir am Papier auf. Geh es ein paar mal durch, dann hast
du schnell den Dreh heraus, was alles zu geschehen hat.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Karl Heinz,

das ist genau das was ich brauchte, dankeschön.

Autor: Ludger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn das Feld geaendert werden darf, kann man auch die Kommata durch 
Nullen ersetzen und entsprechende Stringpointer auf das naechste Zeichen 
platzieren. Das wuerde keinen zusaetzlichen Speicher fuer Strings 
benoetigen. Allerdings waere fuer jeden geparsten String ein Pointer 
noetig.

Gruss,
Ludger

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wenn das Feld geaendert werden darf, kann man auch die Kommata durch
> Nullen ersetzen und entsprechende Stringpointer auf das naechste
> Zeichen platzieren.

Das ist genau das, was strtok macht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.