char vergleichen



  • Hallo,

    wie kann ich am Besten zwei chars vergleichen, z.B.:

    char test[8];
    strcpy(test, "halloKn\0");
    char x = 'K';
    if(strcmp(&test[strlen(test)-2], "K") == 0)
       printf("Das ist es");
    

    Das funktioniert zwar nicht und ich hab jetzt auch keinen Plan wies gehen könnte,
    Kann mir da jemand weiterhelfen?
    Besten Dank,
    lg



  • Willst du einzelne Zeichen vergleichen, oder Zeichenketten?



  • char test[8];
    strcpy(test, "halloKn\0");
    char x = 'K';
    if(test[strlen(test)-2] == x)
       printf("Das ist es");
    

    Und das ist C.
    "Richtig" wär's so:

    std::string test="halloKn";
    char x = 'K';
    if(test[test.length()-2] == x)
       std::cout << "Das ist es";
    


  • Äh, vergiss den zweiten Teil von oben wieder.
    Hab mich im Forum verklickt, eigentlich wollte ich nach C++.



  • Huhu,

    mit den Anführungszeichen ("") gibst du eine Zeichenkette an.
    Sprich:

    char x = 'A' ; // Richtig ---> 1 Byte: 'A'
    char y = "A" ; // Falsch, in einem char passen nur 1 Byte. Hier sind es aber mit den Anführungszeichen 2 Bytes: 'A' + '\0'
    char z = 'B' ;
    
    if ( x == z )
       printf ( "Das ist es!\n" ) ;
    else
       printf ( "Neee, das ist es nicht!" ) ;
    

Anmelden zum Antworten