Veröffentlicht 4. Februar 200322 j Hallo Habe zwei simple fragen: 1.) Ich habe von der Klasse string( string.h ) ein Array erzeugt. Ist es nun möglich dieses Array in ein char Array umzuwandeln. Welche Möglichkeiten gibt es da? 2.) Wie kann man den inhalt eines String Arrays ausgeben? Besten Dank im Vorraus Rain
4. Februar 200322 j Originally posted by Rain Hallo Habe zwei simple fragen: 2.) Wie kann man den inhalt eines String Arrays ausgeben? Besten Dank im Vorraus Rain Denke mal das du die STL benutzt. probier mal cout << Stringname[index] << endl;
4. Februar 200322 j cout funkt nicht, auch printf() und puts() nicht. Ich möchte das String Array in ein char* Array umwandeln. Besten Dank Rain
4. Februar 200322 j Originally posted by Rain cout funkt nicht,Klar funktioniert das, und wenn du so nett wärest, die Fehlermeldung zu posten, könnten wir auch rausfinden, warum es bei dir nicht geht. Ich möchte das String Array in ein char* Array umwandeln.Was denn nun? Oben war es noch ein char-Array. Das ist ein ziemlicher Unterschied.
4. Februar 200322 j Originally posted by Rain Ist es nun möglich dieses Array in ein char Array umzuwandeln. Welche Möglichkeiten gibt es da? @Klotzkopp: Er wollte von Anfang an in ein Char Array wandeln. Da hat sich nichts getan...
4. Februar 200322 j Originally posted by Freak4life @Klotzkopp: Er wollte von Anfang an in ein Char Array wandeln. Da hat sich nichts getan... In seinem letzten Beitrag sprach Rain von einem Array von char*. Das würde auch mehr Sinn machen, weil ein char-Array nur einen einzigen String aufnehmen kann, nicht mehrere.
5. Februar 200322 j @Rain Ein Auszug aus Deinem Sourcecode wäre sehr hilfreich bei der Fehlersuche und bei der Klärung der Frage ob es sich um ein char-Array oder char*-Array handelt.
5. Februar 200322 j Danke für eure Bemühungen. Hab das ganze schon gelöst. Ich wandle jetzt ein string array in ein char* array. Ich hab mich wohl schlecht ausgedrück! So hab ich das gelöst string st = "text"; char* stch = (char*) st.c_str(); Bye Rain
5. Februar 200322 j Originally posted by Rain Ich wandle jetzt ein string array in ein char* array. Ich hab mich wohl schlecht ausgedrück! So hab ich das gelöst string st = "text"; char* stch = (char*) st.c_str(); Das ist aber nur ein einzelner String, kein Array. Außerdem ist das, was du da machst, möglicherweise gefährlich. Der Zeiger, den c_str zurückliefert, ist nur solange gültig, wie der String nicht verändert oder zerstört wird. Du darfst auch auf keinen Fall versuchen, den String über den Zeiger zu verändern. Der Zeiger ist ursprünglich const. Das hast du durch den Cast zwar formal umgangen, aber verändernde Zugriffe über diesen Zeiger können dir trotzdem noch um die Ohren fliegen. Generell gilt, dass bei einem Const-Cast der Programmierer ganz genau wissen sollte, was er tut.
6. Februar 200322 j Originally posted by Rain Danke für eure Bemühungen. Hab das ganze schon gelöst. Ich wandle jetzt ein string array in ein char* array. Ich hab mich wohl schlecht ausgedrück! So hab ich das gelöst string st = "text"; char* stch = (char*) st.c_str(); Bye Rain Besser waere: string st = "test"; char* stch = (char*) st.c_str(); int nLength = strlen(stch); nLength ++; char* pstrNewString = new char[nLength]; strcpy( pstrNewString , stch ); Dann haste eine Kopie und keine Probleme wenn st veraendert wird und moeglicherweise ein realloc kommt. Frank
10. Februar 200322 j Okay ihr habt mich überzeugt, werd das nochmal durchdenken! Besten Dank für eure posts Rain
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.