Hi,
ich wollte gerade ein kleines C Programm schreiben, welches einen Satz einliest, alle Satz- Leerzeichen entfernt und ihn dann wieder ausgibt.
Das Programm läuft Problemlos, wenn man "normale" Sätze eingibt. Wenn man aber Sätz mit mehreren Leer- Satzzeichen hintereinander eingibt wird nur jedes zweite entfern (Bsp: Wenn ich ?!? eingebe wird ! noch ausgegeben).
Hier mein Programm:
Code:
#include <stdio.h>
#include <string.h>
int main()
{
char satz[80];
int laenge, i, j;
printf("\nGeben Sie einen Satz ein:\n>");
fgets(satz, sizeof(satz), stdin);
if(satz[strlen(satz)-1]=='\n')
satz[strlen(satz)-1]=='\0';
laenge = strlen(satz);
for(i=0; i<=laenge; i++) {
if(satz[i]==' ' || satz[i]=='.' || satz[i]==',' || satz[i]=='!' || satz[i]=='?') {
laenge--;
for(j=i; j<=laenge; j++)
satz[j] = satz[j+1];
}
}
printf("\n%s\n", satz);
return 0;
}
Es wird wahrscheinlich irgendwas in der for Schleife nicht richtig laufen. Ich komme aber nicht drauf, wo das Problem liegt.
Kann mir jemand auf die Sprünge helfen?
Danke!
Lesezeichen