Leerzeichen/Tab löschen

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Daniel200289
Beiträge: 20
Registriert: Mo Aug 11, 2014 12:17 pm

Leerzeichen/Tab löschen

Beitrag von Daniel200289 » Mo Sep 08, 2014 10:21 am

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 :)

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Leerzeichen/Tab löschen

Beitrag von Xin » Mo Sep 08, 2014 10:49 am

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...
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Daniel200289
Beiträge: 20
Registriert: Mo Aug 11, 2014 12:17 pm

Re: Leerzeichen/Tab löschen

Beitrag von Daniel200289 » Mo Sep 08, 2014 10:51 am

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?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Leerzeichen/Tab löschen

Beitrag von Xin » Mo Sep 08, 2014 12:41 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: Leerzeichen/Tab löschen

Beitrag von mfro » Mo Sep 08, 2014 2:57 pm

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))
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

Antworten