Vokale zählen!!!



  • danke aber soo check ich es nicht..
    gibts nicht noch ne möglichkeit auf meiner art? (siehe seite1)
    bitte danke 🙂



  • #include <cstring>
    
    int main(void)
    {
        int WortAnzahl = 1;
        char text[] = "Dies ist ein Testsatz"; // Kann jeder beliebige andere Text sein 
        for(int i = 0; i < std::strlen(text); ++i) // strlen holt die Länge des des Strings bis zum nächsten '\n'
            if (text[i] == ' ') // Wenn es ein Leerzeichen ist wird die Wortanzahl um 1 erhöht ...
                ++WortAnzahl;
    
        return 0;
    }
    

    Aber das ist insofern nicht richtig als das wenn manmal folgenden String übergibt der nicht das richtige ausgibt 😉
    "Das ist ein Test " richtig wäre 4 ... er wird dir aber 5 ausgeben ...



  • Kann mir jemand ein kleines programm mit MEINER ART (siehe seite1) schreiben, indem man Wörter zählen kann? Also mit Leerzeichen+1 oder so.. Bitte helft mir. Ist wichtig! Dankeeeee im Voraus!!!



  • Wir machen keine Haufaufgaben!



  • (D)Evil schrieb:

    for(int i = 0; i < std::strlen(text); ++i) // strlen holt die Länge des des Strings bis zum nächsten '\n'
    

    Soweit kommt's noch, dass strlen bis '\n' zählt...

    http://cppreference.com/stdstring/strlen.html

    "The strlen() function returns the length of str (determined by the number of characters before null termination)."



  • LoSt schrieb:

    Kann mir jemand ein kleines programm mit MEINER ART (siehe seite1) schreiben, indem man Wörter zählen kann? Also mit Leerzeichen+1 oder so.. Bitte helft mir. Ist wichtig! Dankeeeee im Voraus!!!

    Ich habe jetzt ein bischen rumprobiert... was rausgekommen ist zählt Wörter und Vokale. Hoffe das ich nicht irgendwie das Thema verfehlt habe oder so

    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    
    int main(void)
    	{
    
    	int vokale = 0;
    	int words = 1;
    
    	while(true)  //Endlosschleife
    		{
    		int input = getchar(); //Zeichenfolge wird eingelesen 
    		char buchstabe = input; //buchstabe erhält den entsprechenden Wert 
    		if (input != 10)
    			{
    			switch(buchstabe)
    				{
    				case 'a':
    				case 'e':
    				case 'i':
    				case 'o':
    				case 'u':
    				vokale++;
    				break;
    				case 32:
    				words++;
    				}
    			}
    		else
    			{
    			break;
    			}
    		}
    
    	cout<<"Dein Satz hat "<<words<<" Woerter und "<<vokale<<" vokale"<<endl;
    
    	}
    


  • hm danke sieht aber sehr kompliziert aus (für mich).. auch wenns wahrscheinlich voll leicht ist.
    gibts nicht noch andere möglichkeiten? 😕
    mfg



  • bitte helft mir!!! 😞



  • Nicht bevor du dir nicht endlich mal 'n Tutorial durchliest, um die hier geposteten Lösungen zu verstehen: http://tutorial.schornboeck.net/inhalt.htm
    Es läuft nun mal auf Schleife + Abfrage raus, viel mehr Möglichkeiten gibt's nicht.
    Du willst Hilfe, wir wollen Engagement.



  • hmm war gerade zu faul auszuprobieren ob es so geht ^^

    void count_words(const std::string& string, unsigned short& count)
    {
    	std::string::size_type len = string.length();
    	count = (len <= 0 ? 0 : 1);
    
    	for (std::string::size_type n = 0; n < len; ++n)
    		if (string[n] == ' ' && (n + 1) < len && string[n + 1] != ' ')
    			++count;
    }
    

    sollte so wie ich es mir vorgestellt haben halt als erstes gucken ob überhaupt was im String steht ... wenn mehrerer Leerzeichen hintereinander kommen soll der die ignorieren ... tjo und nutzt natürlich std::string usw ..

    achja ... die Funktion braucht den Header <string>

    Also testen müsst ihrs selbst ... hab wirklich keine Zeit sorry ...


Anmelden zum Antworten