string in char* umwandeln



  • Hallo,
    hab einen String und möchte diesen in ein C-Array char* umwandeln:

    Hab die Funktion c_str() gefunden, aber diese verlangt ein const char*.

    Dann hab ich paar Zeilen selbst geschrieben:

    char* stringInChar;
    stringInChar=new char[datei.size()];
    cout<<"Size "<<datei.size()<<endl;
    for (int z=0;z<datei.size();z++)
    stringInChar[z]=datei[z];

    Gibt aber auch irgendwelche komischen Zeichen am Anfang und Ende von stringInChar aus.

    P.S.:
    In der Variablen steht ein dateiname mit Pfad, also z.B.:
    ../ordner/bild1.tif



  • Hallo,

    wenn du unbedingt ein char* benoetigst, dann bleibt dir nichts anderes uebrig,
    als die Daten zu kopieren, aehnlich wie du es gemacht hast. Im Speicherbereich
    eines string-Objektes herumwerkeln ist auf jeden Fall nicht empfehlenswert.

    mfg
    v R



  • so?

    string test("../ordner/bild1.tif");
    	char * buffer = new char[test.size()+1]; // +1 wegen \0
    	strcpy(buffer, test.c_str());
    	cout << buffer;
    

    Bei mir gehts auf jeden Fall.



  • Ausgezeichnet!
    Funktioniert bei mir auch!
    Vielen Dank für die schnellen Antworten!


Anmelden zum Antworten