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


von Michael (Gast)


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?

von Karl H. (kbuchegg)


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.

von Michael (Gast)


Lesenswert?

Hallo Karl Heinz,

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

von Ludger (Gast)


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

von Rolf Magnus (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.