Zwei gleiche Strings -> trotzdem ungleich
-
Hi,
ich habe ein Problem. Warum sind s und s2 ungleich, obwohl sie den gleichen Inhalt haben. Das verstehe ich nicht...
#include <string> #include <iostream> using namespace std; void main() { int i; string s,s2=""; char acC[]="Hallo"; s=acC; for(i=0;i<sizeof(acC)/sizeof(char);i++) { s2+=acC[i]; } cout << s << " " << s2; if(s==s2) cout << "\n stimmt"; cin >> i; }
Danke,
Chrissi
-
Was noch verwirrender ist:
stringstream ss; ss << s << "TEST" << "TEST"; cout << "\n" << ss.str().c_str(); ss.str(""); ss << s2 << "TEST" << "TEST"; cout << "\n" << ss.str().c_str();
-
s2 enthält noch ein Nullzeichen am Ende, weil acC[sizeof(acC)/sizeof(char)-1]=='\0' ist.
-
Das ging ja flott.
Vielen Dank.
Daran hat es wohl gelegen...