Problem bei der Ausgabe einer Zeichenkette



  • Hallo,

    ich hab hier ein ein wenig Code, der mir ein Problem bereitet.

    #include <stdio.h>
    
    main(){
    
    char text[300];
    int i=0;
    
    printf("\f");
    printf("Bitte geben Sie einen Text bis 300 Zeichen ein:");
    gets(text);
    
    while(text[i]!='\0'){
       while(text[i]!=' '){
       printf("%c",text[i]);
       i++;
       }
    printf("\n");
    while(text[i]==' '){
       i++;
       }
    }	
    }
    

    Man kann mehrere Wörter eingeben und das Programm gibt diese dann Zeilenweise aus. Das Problem ist nur, das nach dem letzten Wort ein fürchterliches Durcheinander an Zeichen erscheint! Kann mir einer sagen, woher dieses kommt?

    Danke!



  • Er hängt beim letzten Wort in der inneren Schleife fest und liest über das Ende des Strings hinaus, weil dein String nicht mit einem ' ' aufhört 😉 .



  • Hey spitze, danke!! Hab es so geändert und nun läuft es:

    #include <stdio.h>

    main(){
    
    char text[300];
    int i=0;
    
    printf("\f");
    printf("Bitte geben Sie einen Text bis 300 Zeichen ein:");
    gets(text);
    
    while(text[i]!='\0'){
       while(text[i]!=' '  && text[i]!='\0'){
       printf("%c",text[i]);
       i++;
       }
    printf("\n");
    while(text[i]==' '){
       i++;
       }
    }   
    }
    

Anmelden zum Antworten