Wie vergleiche ich Zeichenketten?????
-
Hallo alle beisammen
Ich hab ne Frage :
Wie vergleiche Zeichenketten miteinander??
Damit geht es ja nicht:#include<iostream.h> int main(void) { char a[20], y[20]; cout<<"Eingabe:\n"; cin>>a; y="hallo"; if(a==y) { cout<<"Richtig"; } else { cout<<"Falsch!"; } return(0); }
-
Frager schrieb:
... if(a==y) ...
damit vergleichst du die adressen und die sind in diesem fall immer unterschiedlich. du musst zeichenweise vergleichen, entweder mit 'strcmp' o.ä. oder (für mfc) mit 'CString::operator=='
-
und wie verwende ich die von dir genannten Befehle????
-
if(strcmp(a,y) ==0)
besser gehts mit CString da kannst du vergleichen
-
nicht ausprobiert, aber vielleicht geht das
if (CString(a) == CString(y)) { // gleich }
-
Aber, wieso geht das nicht??????
#include<iostream.h> #include<string> int main(void) { int q; char a[20], b[4]; cout <<"eingabe: \n"; cin >> a; b="abc"; if(strcmp(a,b) ==0) { cout<<"Richtig!"; cin>>q; } else { cout<<"Falsch!"; cin>>q; } return(0); }
-
Frager schrieb:
Aber, wieso geht das nicht??????
... char a[20], b[4]; ... b="abc"; ...
das compiled doch nicht nicht mal. probier dies:
strcpy (b, "abc");
-
Frager schrieb:
char a[20], b[4]; [...] b="abc";
Wenn schon, dann musst du das so machen
char a[20], b[4] = {"abc"};
-
groovemaster schrieb:
Wenn schon, dann musst du das so machen
char a[20], b[4] = {"abc"};
die {} kannste aber weglassen. und die 4 auch
-
wenn du schon cin etc. verwendet kannst du aucg gleich die Klasse string verwenden.
-
Unix-Tom schrieb:
wenn du schon cin etc. verwendet kannst du aucg gleich die Klasse string verwenden.
hier ist doch der mfc-bereich. da nehmen alle 'CString'
-
net schrieb:
die {} kannste aber weglassen. und die 4 auch
Kann man, muss aber nicht.
-
net schrieb:
Unix-Tom schrieb:
wenn du schon cin etc. verwendet kannst du aucg gleich die Klasse string verwenden.
hier ist doch der mfc-bereich. da nehmen alle 'CString'
Da man mit VC++ nicht nur die MFC verwenden kann, posten diese auch hier obwohl es eigentlich in C++-Forum gehört.
Man muss aber nicht unbedingt eine Thread sofort dorthin verschieben wenn eine Frage mit einer Antwort erledigt ist. Es kann ja noch kommen das er eigentlich was mit MFC machen will oder sich zwischen C und C++ entscheidet. Abgesehen davon ist es bis auch cin cout und einem Header, den man in C++ so nicht einbindet, C und nicht C++ wenn man auch den Header string weg lässt.