std::string mit char initialisieren?
-
Warum funktioniert folgender code nicht?
std::string thechar(someotherstring[0]);Error 3 error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it)' : cannot convert parameter 1 from 'char' to 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it'So wie ich das interpretiere, will er sowieso den Kopierkonstruktur aufrufen, ich weiß aber nicht warum. Ich würde gerne diesen hier haben:
string( const char* str );Wieso nimmt er den nicht? Der stellt doch sowieso eine viel bessere Übereinstimmung dar!
-
http://www.cppreference.com/cppstring/string_constructors.html
std::string thechar(1, someotherstring[0]);
-
tanga schrieb:
...
std::string thechar(someotherstring[0]);...
Wenn "someotherstring" das ist, was er zu sein vorgibt (nämlich eine Zeichenkette), dann ist "someotherstring[0]" nur ein einzelnes Zeichen (seeeeehr wahrscheinlich vom Typ char).
=> Du versuchst nicht std::string(char const*) aufzurufen, sondern std::string(char) ... und den gibt's halt nicht.Gruß,
Simon2.
-
warum nicht einfach so:
std::string thechar; thechar[0] = someotherstring[0];
-
userr schrieb:
warum nicht einfach so:
std::string thechar; thechar[0] = someotherstring[0];Naja, kenny spart immerhin einen Konstruktoraufruf....

Gruß,
Simon2.
-
Simon2 schrieb:
userr schrieb:
warum nicht einfach so:
std::string thechar; thechar[0] = someotherstring[0];Naja, kenny spart immerhin einen Konstruktoraufruf....

… und einen Crash.
-
Für nen Character allgemein sei noch Folgendes angeführt:
char c = 'a'; ... std::string foo; foo = c; foo = 'c';