Problem mit string zu char *
-
Ich kann mir denken, dass es schon oft genug drankgekommen ist, aber ich hab trotdzem gerade nichts dazu gefunden und komme einfach nicht weiter.
Also ich will einen string aus
#include <string>
an ne Funktion übergeben die nur char * entgegennimmt. Ich hab eigentlich gedacht, dass geht mit
text.c_str()
. Lieder geht es doch nicht. Ich bekomme die Fehlermeldung
*Konvertierung von 'const char *' nach 'char ' nicht möglich
Was kann ich denn tun, damit es klappt?
danke
-
weiß ich nicht.
-
char* pChar = const_cast<char*>(text.c_str());
-
MaSTaH, warum ver*****t du hier die Anfänger?
Bye Peter.
-
ok, perfekt, danke MaSTaH
-
bummel: Warum nimmt die Funktion denn nur char*?
- sie verändert ihr Argument nicht und ist von dir: ändere es in const char *
- sie verändert ihr Argument nicht und du kannst sie nicht ändern: siehe MastaH
- sie verändert ihr Argument: Mach eine Kopie:
// aus struppi 3rd ed: char *p = new char[s.length() + 1]; s.copy(p, string::npos); p[s.length()] = 0;
und arbeite damit
-
Die Funktion hab ich mal per copy & paste übernommen. Gerade hab ich gemerkt, dass sie nicht char * sondern ein gewisses LPSTR übernimmt, hab ich bis jetzt nur bei WinApi programmierung gesehen... Scheint aber so ziemlich das das gleiche zu sein Da das Argument nicht verändert, hab ich das LPSTR jetzt auch mit const char * ersetzt.
Nochmal danke für eure Hilfe.
-
LPSTR == char*