Zum Inhalt springen

string[] <-> char[]


Empfohlene Beiträge

Geschrieben

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

Geschrieben
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; ;)

Geschrieben

cout funkt nicht, auch printf() und puts() nicht.

Ich möchte das String Array in ein char* Array umwandeln.

Besten Dank

Rain

Geschrieben
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.
Geschrieben
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...

Geschrieben
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.
Geschrieben

@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.

Geschrieben

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

Geschrieben
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.

Geschrieben
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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...