char in String umwandeln
-
hallo,
wie kann ich ein Char in ein string umwandeln.
ich brauche dass, weil ich zuerst den char-typ brauch und dann den String-typ.
-
Hallo,
So einfach funktioniert das:char *cString = "ein String"; std::string str = cString;
-
Die frage ist nun, meinst du std::string oder einen C-Style String (char*):
für std::string:
char einzeichen = 'a'; std::string der_string = einzeichen;
für den C-Style String:
char *der_string = new char[2]; der_string[0] = einzeichen; der_string[1] = '\0'; // Nullterminierung. //und nicht vergessen wenn man den string nicht mehr braucht: delete[] der_string;
-
bibstudent258 schrieb:
hallo,
wie kann ich ein Char in ein string umwandeln.
ich brauche dass, weil ich zuerst den char-typ brauch und dann den String-typ.Wie verwandelt man Äpfel in Birnen? Wie verwandelt man Daten in Adressen? Wie verwandelt man char in einen string?
char* String(char CharToConvert){ char* StringResult=new char[2]; StringResult[0]=CharToConvert; StringResult[1]='\n'; return StringResult; } // Eine Möglichkeit von mehreren. Ein spontaner Einfall.
-
eViLiSSiMo schrieb:
char einzeichen = 'a'; std::string der_string = einzeichen;
pech gehabt
char einzeichen = 'a'; std::string der_string; der_string += einzeichen; //oder der_string(&einzeichen, 1); //wenn ich mich recht entsinne
std::string hat viele konstruktoren, aber für char keine. ist auch nicht mit explicit versteckt.
-
Salonfurie schrieb:
// Eine Möglichkeit von mehreren. Ein spontaner Einfall.
Aber wahrscheinlich der schlechteste. new ohne delete? Und das ohne Smart Pointer. Nicht besonders clever.
-
davie schrieb:
eViLiSSiMo schrieb:
char einzeichen = 'a'; std::string der_string = einzeichen;
pech gehabt
char einzeichen = 'a'; std::string der_string; der_string += einzeichen; //oder der_string(&einzeichen, 1); //wenn ich mich recht entsinne
std::string hat viele konstruktoren, aber für char keine. ist auch nicht mit explicit versteckt.
Ok mein Fehler hab nicht daran gedacht weil std::string einen AssignmentOp auch für char hat, hab ich mich in die irre leiten lassen.
So geht es aber auch: (ohne den op +=, nur mit = )char einzeichen = 'a'; std::string der_string; der_string = einzeichen;
-
edit: Hier stand Mist
-
simon.phoenix schrieb:
edit: Hier stand Mist
Und ich hab's gelesen
-
groovemaster schrieb:
Salonfurie schrieb:
// Eine Möglichkeit von mehreren. Ein spontaner Einfall.
Aber wahrscheinlich der schlechteste. new ohne delete? Und das ohne Smart Pointer. Nicht besonders clever.
... nach delete verweist der Zeiger ins Leere, und die Funktion liefert dann
... einen Zeiger auf einen undefinierten Bereich zurück. Ganz bestimmt nicht
... das, was der Aufrufer haben wollte. Erst nachdenken, dann meckern
-
Salonfurie schrieb:
groovemaster schrieb:
Salonfurie schrieb:
// Eine Möglichkeit von mehreren. Ein spontaner Einfall.
Aber wahrscheinlich der schlechteste. new ohne delete? Und das ohne Smart Pointer. Nicht besonders clever.
... nach delete verweist der Zeiger ins Leere, und die Funktion liefert dann
... einen Zeiger auf einen undefinierten Bereich zurück. Ganz bestimmt nicht
... das, was der Aufrufer haben wollte. Erst nachdenken, dann meckernIch galube nicht, dass er ein delete in der Funktion meinte (hoffe es ;)), sondern er meinte außerhalb und dann muss sich der Benutzer darum kümmern. Wenn dieser aber nun nicht weiß, dass in der Funktion eine new verwendet wird ... Peng!
-
Aziz schrieb:
simon.phoenix schrieb:
edit: Hier stand Mist
Und ich hab's gelesen
Behalt`s für dich
War einfach ein verflucht ungewohnter Anblick
-
Salonfurie schrieb:
... nach delete verweist der Zeiger ins Leere, und die Funktion liefert dann
... einen Zeiger auf einen undefinierten Bereich zurück. Ganz bestimmt nicht
... das, was der Aufrufer haben wollte. Erst nachdenken, dann meckernUnd wie sieht es bei dir mit dem Nachdenken aus? Glaubst du, dass ich nicht weiss, dass nach dem delete der String tot ist? Lies dir den Beitrag von viande durch, dann weisst du in welche Richtung es geht. Ich nehm dir's aber nicht übel. IIRC hat man in der std c lib auch solchen Unfug gemacht. Nur sollte man daraus lernen und nicht die gleichen Fehler machen.