string aufsplitten anhand eines trennzeichens - auch ohne inhalt

phoolan

Grünschnabel
hallo,

programmiersprache C;

ich würde gerne eine string anhand eines trennzeichens splitten.
das klappt mit strtok und dem delimiter wunderbar.
jedoch nur solange, wie zwischen den trennzeichen auch "inhalte" sind.

ich habe zb. eine 3-teiligen string: ab;cd;ef
und als trennzeichen den ;
damit erhalte ich 3 teilstrings -> perfekt.
array[0] = ab
array[1] = cd
array[2] = ef

wenn aber der zweite teilstring leer ist: ab;;ef
ersetzt er das erste ; durch \0 (ok), aber ignoriert einfach das zweite ; und der text "ef" landet statt auf array[2] auf array[1].
damit habe ich statt eigentlich 3 teilstrings (mit einem leeren 2te), nur 2 teilstrings was leider bei meiner anwendung falsch ist.

kann mir jemand bitte einen tipp geben wie ich meinen leeren zweiten teilstring erhalten kann?

hab leider keine andere funktion gefunden und auch grad keine idee mehr.
vielen dank.
 
über nacht überlegt und eine etwas umständliche lösung gefunden.
direkt beim einlesen mit getchar eine unterteilung via abfragen nach den zeichen. ziemlicher spaghetti code. aber funktional.

vielliecht hat doch jemand eine schönere lösung?
 
Hi

was hindert dich daran, die ganze eingelesene Zeile mit einer Schleife selbst nach ; zu durchsuchen?
 

Neue Beiträge

Zurück