c++ und die variable char



  • Hallo an alle!

    ich versuche schon seit geraumer zeit eine lösung für volgendes Problem zu finden:

    char name;
    cin>> name;
    if(name==gretchen){
    cout<<"so so "<< endl;
    }

    Wie bekomme ich es hin, dass der net sagt
    Error : weil gretchen eine nicht definierte Variable is!

    dabei soll das doch die Eingabe sein
    und nur wenn gretchen eingegeben wird solls nach da und da weitergeh!



  • Also erstmal hast du für den Namen, den du eingeben willst keinen Speicher reserviert und zum anderen kommern Strings in " ". Außerdem kann man keine Strings direkt vergleichen. Und als letzter Hinweis: benutz std::string, dann musst du dir über all das keine Gedanken machen

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        string name;
        cin>> name;
        if(name == "gretchen")
                cout << "so so" << endl;
    
        return 0;
    }
    

    So, hoffe, du kannst damit was anfangen 🙂



  • mit C Strings machst du das so:

    char name[20];
    memset(&name,0,sizeof(name)); 
    cin >> name; 
    if(strcmp(name,"gretchen")==0)
    { 
       cout<<"so so "<< endl; 
    }
    

    cu



  • Da wir aber nicht im C Forum sind, vergessen wir diese Möglichkeit ganz schnell wieder, ok?
    Was soll überhaupt dieses memset? Sieht für mich so nach "ich weiss nicht was ich mache also mach ichs einfach mal" aus.



  • groovemaster schrieb:

    Da wir aber nicht im C Forum sind, vergessen wir diese Möglichkeit ganz schnell wieder, ok?
    Was soll überhaupt dieses memset? Sieht für mich so nach "ich weiss nicht was ich mache also mach ichs einfach mal" aus.

    hi!;-) memset initialisiert den string mit 0en
    cu



  • cplusplus_ schrieb:

    hi!;-) memset initialisiert den string mit 0en

    Schon klar, aber wozu?



  • hi!;-) memset initialisiert den string mit 0en
    cu

    Und das ist auch gut so, denn mir ist es schon mal passier, dass ich ohne memset plötzlich irgendwelchen undefinierten Schwachsinn drinne stehen hatte.
    Besser is meiner Meinung nach aber '\0' statt nur 0 zu nehmen.
    Das löscht alles. 👍



  • War das jetzt Sarkasmus oder Unwissenheit?


Anmelden zum Antworten