Zählen von Groß-, Kleinbuchstaben und sonstigen Zeichen



  • Ok danke, wusste ich nicht 😉
    Ich weiß nicht wie ich die Funktion einfügen kann, dass es auch Kleinbuchstaben, Sonderzeichen und die Gesamtanzahl ausrechnet.

    #include <stdio.h>
    #include <ctype.h>
    
    int main()
    {
        char c;
        int grossbuchstaben = 0;
    
        printf("Bitte geben Sie einen Satz ein:\n");
        while(1)
        {
    
            c = getchar();
    
            if( c == '\n' )
                break;
    
            if( isupper(c) )
                ++grossbuchstaben;
        }
        printf("Der Satz enthält %d Großbuchstaben.\n", grossbuchstaben );
    }
    


  • MMueller schrieb:

    Ich weiß nicht wie ich die Funktion einfügen kann, dass es auch Kleinbuchstaben, Sonderzeichen und die Gesamtanzahl ausrechnet.

    Ähh,..... 😮

    Genau so wie bei den Großbuchstaben:

    Neue Zählvariablen für Kleinbuchstaben und Gesamtanzahl.

    Dann kopierst du Zeile 18 und 19, fügst die danach wieder ein (zwischen 19 und 20) und änderst den Variablennamen für Kleinbuchstaben

    Und das gleiche nochmal für mit Zeile 19 für die Gesamtzahl.

    Und dann noch die Ausgabe anpassen.

    Wo hast du denn den Code her?



  • Ok, danke. Ich werde das gleich ausprobieren.
    Ich besuche zurzeit ein C- Seminar und haben während des Seminars diesen Code geschrieben und sollen als Übung weitere Funktionen einbauen.

    Ich habe es erweitert. Gibt es spezielle Anweisungen, dass es bspw. Kleinbuchstaben zählt? Wenn ich den Code eingebe, zählt es nur die Großbuchstaben.

    #include <stdio.h>
    #include <ctype.h>
    
    int main()
    {
        char c;
        int grossbuchstaben = 0;
    	int kleinbuchstaben = 0;
    	int anzahl = 0;
    
        printf("Bitte geben Sie einen Satz ein:\n");
        while(1)
        {
    
            c = getchar();
    
            if( c == '\n' )
                break;
    
            if( isupper(c) )
                ++grossbuchstaben;
    
    		if( isupper(c) )
    			++kleinbuchstaben;
    
    		if( isupper(c) )
    			++anzahl;
    
        }
        printf("Der Satz enthält %d Großbuchstaben.\n", grossbuchstaben );
    	printf("Der Satz enthält %d Kleinbuchstaben.\n", kleinbuchstaben );
    	printf("Der Satz enthält %d Buchstaben.\n", anzahl );
    }
    


  • Was könnte den isupper (oder anders betont is upper) bedeuten?

    Und bei der Gesamtzahl habe ich nur von Zeile 19 geschrieben.
    Die Kopie von Zeile 18 brauchst du da nicht.



  • Auf welchem Betriebssystem mit welchem Compiler und welcher Entwicklungsumgebung lernst du?



  • Visual. Es funktioniert halbwegs.
    Ich habe die islower Funktion gefunden. Aber bei der Gesamtanzahl zählt es die Leerzeichen/ Sonderzeichen mit.
    Wie kann ich das verhindern und die Sonderzeichen einzeln zählen?



  • VisualStudio hat eigentlich eine sehr ausführliche Hilfe.
    Schau doch mal nach was bei isupper und islower noch so rumgeistert.
    Das hat auch was mit ctype.h zu tun.

    Ach, sch mal da http://www.cplusplus.com/reference/clibrary/cctype/ nach.

    Die Seite dort von islower war auch der erste Fund vom Google für islower.



  • Ok, danke erstmal für deine Hilfe. Wenn ich noch Fragen habe, melde ich nochmal.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum C (C89 und C99) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Dieser Beitrag wurde gelöscht!

Anmelden zum Antworten