string nach char
-
Also ich will einen String nach einem char kopieren Wie geht das?

Also char nach string weiß ich ja.char test[65]; string teststring; teststring=test;Aber wie macht man das umgekehrt?

-
std::string test = "Ich bin ein String"; char* cstring = test.c_str();Guck dir mal http://www.cppreference.com an
-
KaraHead schrieb:
std::string test = "Ich bin ein String"; char* cstring = test.c_str();Guck dir mal http://www.cppreference.com an
Wenn dann
char const* cstring = test.c_str();aber da er sagt er möchte 'kopieren' würde ich es so machen:
char cstring = new char[test.size() + 1]; strcpy(cstring, test.c_str()); // oder anderst rumGruß
-
Das geht über strcpy
char test[65]; string teststring; strcpy(test, teststring);Gruß Georg
-
Das klappt nicht und in der referenz finde ich auch nicht das Thema.
-
und das?
string test = "Hallo"; char test2[255]; strncpy(test2,test.c_str(),test.length());
-
Klapt danke.
-
War die Anzahl bei strncpy nicht dazu da das Zielfeld vor Überlauf zu schützen?

-
LordJaxom schrieb:
War die Anzahl bei strncpy nicht dazu da das Zielfeld vor Überlauf zu schützen?

...wo siehst du ein problem?
-
und... schrieb:
LordJaxom schrieb:
War die Anzahl bei strncpy nicht dazu da das Zielfeld vor Überlauf zu schützen?

...wo siehst du ein problem?
strncpy(test2,test.c_str(),test.length()); // ^^^^^^^^ // hierZwar läuft das dann in diesem fall zwar nicht über, aber in nem Program ist es ja nicht immer gesagt das test.size() < 255 ist.
Von daher wäre folgendes sinnvoller:string test = "Hallo"; char test2[255] = {0}; //Array mit 0 initialisieren strncpy(test2,test.c_str(),254);//Maximal 254 Zeichen kopierenBR
evilissimo