std::string in char-Array konvertieren
-
Hallo,
ich brauche eine Funktion, die einen std::string in ein char-Array beliebiger Größe umwandelt.
ich hab eine Funktion die funktioniert, aber auch nur einmal, danach gibt sie immer das Resultat vom ersten Aufruf zurück.char *StrToChar(std::string Str) { static char Text[BUFSIZ]; strcpy(Text,Str.c_str()); return Text; }Kann mir jemand helfen?
-
Nimm einfach std::string::c_str() oder wenns ein non-const Pointer sein soll &string[0]
Gruß
-
Zuerst einaml sollte Dein Lösung funktionieren. Auf das elementare Problem reduziert, sieht das ganze folgendermassen aus:
#include <cstdlib> #include <iostream> #include <string> using namespace std; char* StrToChar(const string &str); int main() { //mal ein paar Dummydaten zum Ausprobieren static const string a("Hallo"), b(", du da!"); //braucht man eigendlich nicht extra zu //deklarieren, ist hier zur bessereb Übersicht char *ca = StrToChar(a); cout << ca; char *cb = StrToChar(b); cout << cb << endl; return EXIT_SUCCESS; } char* StrToChar(const string &str) { static char Text[BUFSIZ]; return(strcpy(Text, str.c_str())); }Sollte bei Dir auch so funktionieren.
Aber unter uns, was Du da machst ist gar nicht gut. Unabhängig davon, daß dein Problem garantiert besser zu lösen ist, hat Diese Implementierung mehrer Stolpersteine.Was willst Du eigendlich erreichen?
MfG
Chris