(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 mittelschar 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 foundhat 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.