Veröffentlicht 29. November 200123 j Hi! Wie wandele ich am schlauesten ein char-array in ein Objekt vom Typ string und umgekehrt?
29. November 200123 j Hi, was fillst du denn für nen String? Cstring std::string AnsiString(Borland Builder)?? Musst scho a weng genauer werden. Bei std::string denn du wahrscheinlich meinst würd ichs so versuchen: std::string test1; char testArrray[30]; strcpy(test1.c_str(), testArray); Erklärung: strcpy kopiert dir den 2 parameter in den 1. Da strcpy allerdings normalerweise char * benötigt ist es nötig bei test1 noch die Funktion c_str() aufzurufen welche dies erledigt.
29. November 200123 j std::string hat einen Konstruktor für char* und einen überladenen Zuweisungsoperator, d.h. char* pszBla = "bla"; std::string s( pszBla ); oder char* pszBla = "bla"; std::string s = pszBla; funktioniert. Andersrum hat std::string die Funktion c_str(), die einen char* zurückgibt: printf( s.c_str() );
30. November 200123 j <STRONG> <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR> strcpy(test1.c_str(), testArray); </STRONG>
1. Dezember 200123 j Keine Sorge, das funktioniert sowieso nicht, denn basic_string::c_str() liefert einen const char*, den strcpy nicht als Ziel akzeptiert. Hilft natürlich nicht bei Ich-weiß-es-besser-als-der-Compiler-und-caste-auf-non-const-Pointer-Entwicklern
3. Dezember 200123 j mmmh...ihr habt wohl recht! Ich hatte schon bessere Ideen die ist mer halt so spontan eingefallen! Bin erst gar net auf die Idee gekommen das des probleme mit der Speicherreservierung geben könnte.... Naja ich bin halt leider immer("vielleicht wirds irgendwann mal besser") noch a typischer "TRY and ERROR" programmierer Gott sei dank gibs leute die mer dann wenigstens mal in kopf waschen und sagen wies besser wär! Thx!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.