Zeichen in string eingeben und diese zählen und anzahl der zeichen ausgeben



  • hallo habe eine frage bezüglich C.

    will einen max 50 zeichen grossen string per tastatur in ein character feld eingeben und diese wieder ausgeben. dies klappt auch.
    nun möchte ich aber wissen wieviele zeichen eingegeben worden sind, das klappt aber leider nicht so wie ich mir das vorstelle.

    würde mich freuen wen mir jemand helfen könnte.

    int i,d[25];

    char text[25];

    cout << "Bitte einen netten Text eingeben" << endl;

    cin.getline(text, 25);

    cout<< "Eingegeben wurde: "<< text << endl; //bis hier funktioniert alles

    for(i=0;i<text[25];i++)
    {
    d[i]=text[25]-1;

    }

    cout<<"anzahl der wörter ="<<d[i]<<endl;

    }



  • sorry hatte vergessen in den char. anstatt 25 die 50 einzusätzen..... 🙂

    kann mir trozdem jemand verraten wie ich die anzahl meiner eingabe ermitteln kann und dieses ausgebe??

    danke!



  • wenn du's selbst machen willst, gehts in etwa so (ungetestet):

    size_t i = 0;
    size_t w = 0;
    while (text[i] != '\0')
    {
        i++;
        if (i > 0 && w == ' ' && text[i-1] != ' ') w++;
    }
    i--;
    
    std::cout << "anzahl der zeichen: " << i << endl;
    std::cout << "anzahl der woerter: " << w << endl;
    

    aber es gibt bereits Funktionen dafuer in der Standardbibliothek. Um die Laenge eines Strings zu bekommen kann man z.B. strlen oder wie die alle heissen benutzen. aber benutz besser std::string 🙂



  • hallo. vielen dank schonmal.

    mit den standartbibliotheken würde ich gerne arbeiten um das program so kurz und einfach zu halten wie es geht.

    muss ich dan wieder ne schleife benutzen oder kann man das einfach abfragen???





  • hey super das wars der befehl den ich gesucht hatte 🙂 freu freu!!!



  • volume123 schrieb:

    hallo habe eine frage bezüglich C.
    [...]
    cin.getline(text, 25);

    C oder C++?
    In C++ würde man das so machen:

    std::string s;
    std::getline(std::cin, s);
    std::cout << s.size() << '\n';
    

    Und in C:

    char *line = NULL;
    size_t n = 0, len;
    len = getline (&line, &n, stdin) - 1;
    printf ("len: %zu\n", len);
    free (line);
    

    Nur in einem Gemisch der beiden Sprachen ist strlen nötig.


Anmelden zum Antworten