simple strings?

shrewm

Mitglied
Hallo, ich würde gerne mal wissen ob ich (C)Strings so festlegen kann, ohne irgendwie was falsch zu machen.
Code:
string mystring1, mystring2.c_str();
So, dass ich eben einen standart-string und einen c-string hab.

Edit: Hab gerade gesehn, dass das so ja garnicht Funktioniert. Bekomme folgenden Fehler:
Code:
error C2143: Syntaxfehler : Fehlendes ';' vor '.'
Wie kann ich denn sonst eiinen cstring erstellen?
 
Zuletzt bearbeitet:
"C"-Strings an sich gibt es gar nicht. Da wurden immer char-Arrays (oder hässlicher/gefährlicher, char-Pointer) verwendet. Würde so aussehen:

Als Array - die maximale Länge ist dadurch aber vorgegeben:
char szText[260];

Als Pointer - da muss man dann mit dem freigeben aufpassen:

char* pText = NULL;

pText = (char*)malloc( 260 );

.... mit pText arbeiten ...

free( pText );
pText = NULL;


Da du aber scheinbar eh mit C++ arbeitest, benutz bittebittebitte den std::string:

std::string strText;

Wenn du auf eine Funktion triffst, die ein const char* erwartet, kannst du einfach strText.c_str() einsetzen.
Wenn du auf eine Funktion triffst, die ein char* (ohne const!) erwartet, dann ist die entweder falsch deklariert (weil ändert den String gar nicht) oder ändert den String. In dem Fall solltest du dann aber doch auf ein temporäres char-Array (oder einen std::vector<char>) ausweichen und dann in einen std::string umwandeln.
 

Neue Beiträge

Zurück