Vokale zählen!!!



  • switch(Eingabe[x])
          {
          case: 'a':
          case: 'e':
          case: 'i':
          case: 'o':
          case: 'u':counter++;
          }
    
    switch(Eingabe[x])
          {
          case a: counter++;
                  break;
          case e: counter++;
                  break;
          case i: counter++;
                  break;
          case o: counter++;
                  break;
          case u: counter++;
                  break;
          }
    

    ist richtiger 😉
    und er gehört in die for schleife



  • void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
    if(Key==13)
    {
    int x,summe,counter;
    String Eingabe;
    
       Eingabe=Edit1->Text;
       summe=0;
       counter=0;
    
       for(x=1;x<=Eingabe.Length();x++)
          {
    switch(Eingabe[x])
          {
          case a: counter++;
                  break;
          case e: counter++;
                  break;
          case i: counter++;
                  break;
          case o: counter++;
                  break;
          case u: counter++;
                  break;
          }
    }
          Label2->Caption=IntToStr(summe);
          Label2->Visible=true;
    
          }
          }
    }
    }
    

    Ist das jetzt richtig so?
    Achja DANKE für die schnellen Antworten!!!! 👍
    mfg



  • if( Key == VK_RETURN)
    {
      int counter(0);
      AnsiString Eingabe=Edit1->Text;
      for(int x=1;x<=Eingabe.Length();x++)
      {
         switch(Eingabe[x])
         {
           case 'a': 
           case 'e':
           case 'i':
           case 'o':
           case 'u': counter++;  break;
         }
      }
      Label2->Caption = counter;
    }
    

    Das reicht auch. Was ist eigentlich mit den Umlauten?
    [edit]Jetzt ist es richtig.[edit]



  • Wo werden denn eure Variablen a, e, i, o, u definiert? 🙂



  • Ich dachte, hier werden nicht die Hausaufgaben für andere gemacht... 🤡

    Um auch A E I O U zu zählen:

    AnsiString Eingabe=Edit1->Text.LowerCase();
    


  • ?! Wofür willst du denn da Variablenhaben? Brauchst du doch garnet ... die Zeichen werden so wie Zahlen behandelt ... ich glaub du solltest dir mal nen C++ TUt anguckn -.-



  • Und ich glaub du hast nen Fehler weiter oben übersehen und dadurch meinen Wink mim Gartenzaun nicht verstanden -.-



  • Das hat Braunstein doch schon erledigt...



  • Ja, weil er meinen Wink gelesen hat 😃

    Okay, nu is aber genug OT...



  • #include <iostream>
    #include <string>
    #include <algorithm>
    #include <boost/algorithm/string/classification.hpp>
    
    int main()
    {
        std::string test = "bla bla, das ist ein test";
        size_t nVokale = std::count_if(test.begin(), test.end(), boost::is_any_of("AEIOUaeiou"));
        std::cout << nVokale << std::endl;
    }
    


  • ok.. danke für alle antworten

    Hätt da noch ne Frage..
    wär cool zu wissen wie man Wörter zählen kann..
    Also ich gibs zu, hab keine ahnung.. vielleicht mit dem Leerzeichen was?
    schon oder? Kann mir das jmd sagen? Aber bitte in dem schema, in der art wie ich das "vokale zählen" programm hab! des wär echt mega super! danke im voraus!!

    mfg



  • Wieder was gelernt. Boost gehört zum Standard... Mist, muß ich meine IDE wohl wegwerfer, weil boost nicht dabei ist...



  • Musst du ja auch installieren ... sollte normal auch nicht dabei sein 😉



  • LoSt schrieb:

    ok.. danke für alle antworten

    Hätt da noch ne Frage..
    wär cool zu wissen wie man Wörter zählen kann..
    Also ich gibs zu, hab keine ahnung.. vielleicht mit dem Leerzeichen was?
    schon oder? Kann mir das jmd sagen? Aber bitte in dem schema, in der art wie ich das "vokale zählen" programm hab! des wär echt mega super! danke im voraus!!

    mfg

    bitte helfen
    besten dank im voraus

    mfg



  • Wenn du davon ausgehst dass zwischen jedem Wort ein Leerzeichen steht, dann ja, zaehl die Leerzeichen. Musst allerdings am Ende +1 machen, wenn hinter dem letzten Wort kein Leerzeichen mehr steht.

    Andere Methode ist es auszunutzen, dass der operator>> der streams das Leerzeichen als Trennzeichen nimmt. Also solange einlesen bist du Ende angekommen bist, und bei jedem einlesen +1 machen, fertig.



  • Shinja schrieb:

    Wenn du davon ausgehst dass zwischen jedem Wort ein Leerzeichen steht, dann ja, zaehl die Leerzeichen. Musst allerdings am Ende +1 machen, wenn hinter dem letzten Wort kein Leerzeichen mehr steht.

    Ja so hab ichs auch gemeint! ja!
    Kannst dus als Programm kurz schreiben, mit meinem schema wie beim vokale zählen?
    bitteeeeeee

    Besten Dank im Voraus!!!!



  • #include <cstring>
    
    int main(void)
    {
        int WortAnzahl = 1;
        char text[] = "Dies ist ein Testsatz";
        for(int i = 0; i < std::strlen(text);++i)
        {
            if(text[i] == ' ')
            {
                ++WortAnzahl;
            }
        }
        return 0;
    }
    


  • 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!!!


Anmelden zum Antworten