Bool function



  • Hallo!
    Ich bin mitlerweile am verzweifeln. Habe sicher schon 1000 Sachen versucht, kriegs aber nicht 100% richtig zum laufen.
    Ich muss hinkriegen, dass wenn man "bbb" oder "cbc" einträgt True ist aber wenn beide oder keiner drin ist False is. Jedes mal gibts mir aber auch einen True wenn beide drin sind. 😕 Dachte, ich kriegs mit der "weg kommentierten" reihe hin. Aber dann wir immer nur False zurück gegeben.

    Mein code:

    #include <iostream>
    #include <string>
    
    using namespace std;
    bool L(string v, bool bbb, bool cbc)
    {
        for(unsigned i=0;i<v.length();i++){
                if (v[i]=='b' && v[i+1]=='b' && v[i+2]=='b'){
                bbb=true;
                }
                else if (v[i]=='c' && v[i+1]=='b' && v[i+2]=='c'){
                cbc=true;
                }
    }
    //if (bbb==true && cbc==true) return false;
    return cbc;
    }
    
    int main()
    {
        string v;
        bool bbb,cbc;
        cout << "Eingabe: ";
        getline(cin, v);
        cout << v <<endl;
        if(L(v, bbb, cbc)==true){
        cout << "Ja";
        }
        else cout << "Nein";
        return 0;
    }
    

    Danke schon mal im voraus.


  • Mod

    if ((v.find("bbb") != string::npos) ^ (v.find("cbc") != string::npos))
      cout << "Ja.";
    

    Allgemein scheinst du noch große Schwierigkeiten mit Variablen und Funktionen zu haben. Die Themen solltest du dringend noch einmal wiederholen. Deinen jetzigen Code sollte man jedenfalls wegwerfen, der ist kaum zu retten.



  • Riesen dank!

    Ja, bin noch recht am anfang mitm lernen. Muss ich viel machen, aber danke für die hilfe. Auf sowas wäre ich nie gekommen. Muss jetzt nur noch das alles richtig verstehen. 🙂



  • tiktak schrieb:

    Muss jetzt nur noch das alles richtig verstehen. 🙂

    Wichtigstes Stichwort für die Lösung von SeppJ: exklusives oder (wird in C++ als ^ geschrieben)



  • Enter "bbbcbc" und SeppJ hat verloren :p


  • Mod

    EOP_hat_wiedermal schrieb:

    Enter "bbbcbc" und SeppJ hat verloren :p

    😕 Wieso? Es kommt wie gewünscht "Nein" heraus.



  • Nee, hat er doch nicht. Hab momentan leider nur ideone und mein beschränktes Vorstellungsvermögen;

    Rückzieher hat etwas länger gedauert, weil:

    Der Server unter www.c-plusplus.net braucht zu lange, um eine Antwort zu senden.



  • Wer ^ für bool nimmt, frisst auch kleine Kinder.


Anmelden zum Antworten