Seite 1 von 1
Leerzeichen/Tab löschen
Verfasst: Mo Sep 08, 2014 10:21 am
von Daniel200289
Hallo zusammen,
eine kurze Frage: ich habe einen String.
Beispiel: "___________laa_______lala" (wobei ___ Leerzeichen und/oder Tabs sind)
Nun möchte ich, das mein Programm alle Leerzeichen/Tabs vor dem ersten Wort löscht und alle Leerzeichen/Tabs bis auf ein Leerzeichen zwischen den Wörtern.
Mein Programm soll den String also wie folgt ausgeben: "laa lala".
Habt ihr eine Idee?
Danke schonmal

Re: Leerzeichen/Tab löschen
Verfasst: Mo Sep 08, 2014 10:49 am
von Xin
Daniel200289 hat geschrieben:Habt ihr eine Idee?
Mehrere.
Was ist Dein Problem? Umsetzung oder allgemein keine Idee, wie man Whitespaces ausfiltern kann?
Du könntest den String kopieren und Deine Kopierroutine ignoriert einfach alle Leerzeichen und Tabs und wenn es irgendwas ignorieren musste, fügt es beim nächsten Buchstaben erst noch ein Leerzeichen wieder in den Zielstring ein.
Oder Du lässt das mit dem Kopieren und verschiebst einfach die Buchstaben nach vorne und fügst da, wo Du nach Whitespaces wieder auf einen Buchstaben stößt, erst noch das Leerzeichen ein...
Re: Leerzeichen/Tab löschen
Verfasst: Mo Sep 08, 2014 10:51 am
von Daniel200289
ich hab gearde einfach keine Idee wo ich ansetzte, gerade wenn ich mehrere Leerzeichen am Anfang oder zwischen den einzelnen Wörtern habe, ohne dann jedes Leerzeichen zu löschen.
Sprich aus:"_____hallo_________welt" soll ja nicht "hallowelt" sondern "hallo welt" werden.
Welche Methoden aus string.h würdest du benutzen?
Re: Leerzeichen/Tab löschen
Verfasst: Mo Sep 08, 2014 12:41 pm
von Xin
Daniel200289 hat geschrieben:Welche Methoden aus string.h würdest du benutzen?
Keine.
Schreib's selbst.
Code: Alles auswählen
braucheIchEinLeerzeichen = false;
wiederhole
solange( istWhitespace( Eingabe[ position ] )
position um 1 erhöhen
wenn( istZeichen( Eingabe[ position ] )
wenn braucheIchEinLeerzeichen
ergebnis um ein Leerzeichen auffüllen
braucheIchEinLeerzeichen auf True setzen
solange( istZeichen( Eingabe[ position ] )
kopiere Zeichen in Ergebnis
erhöhe position um 1
bis Endmarkierung( Eingabe[ position ] )
Das ist noch nicht ganz perfekt (1 Leerzeichen am Ende zuviel), aber programmeir das erstmal nach.
Re: Leerzeichen/Tab löschen
Verfasst: Mo Sep 08, 2014 2:57 pm
von mfro
ganz ohne while(), dafür hübsch rekursiv:
Code: Alles auswählen
funktion leerzeichen_fressen(String)
wenn der String nicht leer ist
wenn die ersten beiden Zeichen Leerzeichen sind
verschiebe Stringinhalt von Position 1 an Position 0
leerzeichen_fressen(String(0))
leerzeichen_fressen(String(1))