Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

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

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

Besten Dank

Rain

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

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.

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

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.

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.