Kopierprogramm in C

Hallo,

ich bin ein Anfänger in C.

Habe eine Übungsaufgabe in einem Buch gefunden, bei der ich nicht weiter komme.

„SCHREIBE EIN KOPIERPROGRAMM, DAS FOLGEN VON LEERZEICHEN IN DER EINGABE DURCH EIN EINZELNES LEERZEICHEN IN DER AUSGABE ERSETZT“

Kann mir bitte jemand erklären, wie man bei der Aufgabe vorgeht?

von mir angefangenes Programm:
#include
main()
{
int c;
while ((c=getchar())!=EOF)
{
if (c==’ ‚)
c==‘ ';
putchar©;
c=getchar;
}
}

Danke im Voraus,
Alex

ich hoffe doch stark das das nicht irgendeine hausaufgabe ist, aber was solls.

#include "stdio.h"
#include "conio.h"

int main(int argc, char\* argv[])
{
 char c=' ';
 bool b=true;

 for (c=' '; c!=EOF; c=getch() )
 {
 if ( c!=' ' )
 b=false;

 if ( b!=true )
 {
 printf("%c",c);
 }

 if ( c==' ' )
 b=true;
 }

 return 0;
}

Kopierprogramm in C
Hallo,

Als erstes Danke ich dier für die schnelle Antwort.

Jedoch hätte ich noch eine Frage, ob man die Aufgabe auch nur mit „STDIO.H“ lösen kann? Denn deine Lösung war mir klein wenig zu kompliziert.

Hausaufgabe ist es nicht. Es ist eine Übungsaufgabe aus Kernighan/Ritchie.

Danke.
Mfg,
Aelx

Als erstes Danke ich dier für die schnelle Antwort.

bitte

Jedoch hätte ich noch eine Frage, ob man die Aufgabe auch nur
mit „STDIO.H“ lösen kann?

klar, conio.h verwende ich nur wegen getch(), weil diese funktion das eingegebene zeichen nicht auf den bildschirm ausgiebt, ich weiss nicht ob es in der stdio eine vergleichbare funktion gibt.

Denn deine Lösung war mir klein
wenig zu kompliziert.

kompliziert???
mit getch() einlesen, in bool mitschreiben ob letztes zeichen ein leerzeichen war oder nicht, das ist alles.

falls dich die for-schleife verwirrt hat, so gets auch:

 do
 {
 c=getch();

 if (c!=' ')
 b=false;

 if (b!=true)
 {
 printf("%c",c);
 }

 if (c==' ')
 b=true;
 }
 while (c!=EOF);

mfg
Robert

Hallo,

Vielen Dank für die Lösung,
hast mir sehr geholfen

MfG,
Alexander