ich habe ein Problem mit einer Aufgabe. Ich soll folgen von Leerzeichen durch eins ersetzen z.B: Eingabe: Guten_______Tag. Ausgabe:Guten_Tag. Hier was ich bisher habe:
C++:
#include <stdio.h>
main() {
int c, nl;
while ((c = getchar ())!= EOF) if (c == ' ') ++nl; elseprintf("%c", c );
Wäre cool wenn mir jemand helfen könnte, bin noch ganz am Anfang.
MFG KFC Embryo
mod edit: BENUTZE DIE CPP TAGS SELBERDieser Post wurde am 21.08.2006 um 12:23 Uhr von Pablo editiert.
naja du willst ja mind 1 leerzeichen behalten, d.h du machst das so:
C++:
#include <stdio.h>
int main(void) // default int schön und gut, aber hinschreiben ist sinnvoller { int c, nl = 0; // vor allem erstmal mit 0 initialisieren while ((c = getchar ())!= EOF) if (c == ' ') { ++nl; if(nl == 1) // ein leerzeichen ausgeben printf(" "); } else { nl = 0; // wenn der satz mehrere wörter hat, muss der zähler natürlich zurückgesetzt werden printf("%c", c ); } }
Gibt sicher noch mehr Möglichkeiten da dies zu erledigen. Evtl auch mit (f)gets die komplette Zeile einlesen und dann die im Speicher verarbeiten als jedes Zeichen einzeln. -- class God : public ChuckNorris { };