leerzeichen zählen, fehler irgendwo



  • #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        char satz[100];
        int x=0;
        int ergebnis=0;
    
        printf("Hallo, geben Sie bitte einen Satz ein.");
        scanf("%s",&satz[40]);
    
        while(satz[x]){
           if(x==' '){
           ergebnis=ergebnis+1;
           }
           x++;
        }
        printf("%i",ergebnis);        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    hi an alle, ich weiß echt net was an dem programm falsch sein soll, dieses Programm soll einfach nur die leerzeichen zählen.
    Mfg lucbossman 🙂



  • schreibst du c oder c++?



  • u.A. würd ich mir das mal ansehen

    scanf("%s",&satz[40]);
    


  • Du musst schon den Inhalt von deinem Satz mit dem Leerzeichen vergleichen und nicht den Index.

    Das scanf("%s",&satz[40]); mit dem int x=0; ist merkwürdig.
    Kommt darauf an, was du willst.

    Lass mal das & und die [40] bei scanf weg.



  • if(x==' '){
    

    gemeint ist sicherlich

    if(satz[x]==' '){
    

    Und wie bereits erwähnt, ist mir nicht ganz klar, wieso der eingegebene String an die 40. Stelle des char Arrays satz geschrieben werden soll...
    Deshalb

    DirkB schrieb:

    Lass mal das & und die [40] bei scanf weg.

    Vielleicht wäre ja auch eine Zeile mit

    printf ("\n%s\n", satz);
    

    aufschlussreich und würde Dir andeuten, dass die Eingabefunktion möglicherweise ab dem ersten Leerzeichen nichts mehr haben will.



  • jo danke für die antworten. hab die lösung, jedoch ist eines noch unverständlich. ich mach mal lieber nen zweiten beitrag auf.


Anmelden zum Antworten