(C++) String ODER if(char == "dies")



  • Hi,

    ich habe in der FAQ gesucht aber nichts dazu gefunden,
    ich habe mal irgendwann gelesen, dass man bei einer CHAR-variable nicht
    so einfach mittels

    char variable[256];
    strcpy(variable, "dies");
    if( variable == "dies")
    {
        //tu das
    }
    

    prüfen kann, mit strings scheint das zu gehen, aber ich bekomme es nicht hin,
    der variable von anfang an zu sagen, dass sie ein STRING sein soll:

    #include "string.h"
    
    String  sDran[256]; // oder ohne [256] ??
    int main(int argc, char* argv[])
    {
        sDran="Computer";
        if(sDran == "Computer")
        {
            // tu dies
        }
    }
    

    der will nicht, meckert immer rum:

    error C2146: syntax error : missing ';' before identifier 'sDran'
    error C2501: 'String' : missing storage-class or type specifiers
    fatal error C1004: unexpected end of file found

    hat jemand den fehler im blick???



  • Besorg dir mal ordentliches Material, lernst du ausschließlich durch Trial&Error?

    #include <string>
    using namespace std;
    int main() {
      string sDran = "Computer";
      if (sDran == "Computer")
        ...
    }
    

    Folgende Dinge sollten dir definitiv auffallen:
    a) es heißt string, nicht string.h. string.h ist ein Headerfile in C, in C++ gibt es das gleiche unter dem Namen cstring. Die String-Klasse ist in string drin.
    b) Nicht ohne Not globale Variablen definieren.
    c) Variablen im Normalfall gleichzeitig definieren und initialisieren.

    Warum es mit char-Arrays nicht geht? Weil Array und String-Literale in fast jedem Kontext als Zeiger behandelt werden, der == Operator vergleicht also die Adressen der Objekte, und nicht den Inhalt. Die Funktion zum Vergleichen von C-Strings heißt übrigens strcmp.



  • MFC? VC++? Eher nicht ...
    Wech damit.


Anmelden zum Antworten