Forum
Tipps
News
Menu-Icon

string-array in c++

Hi,

bin eigentlich eher in VB(A) bewandert. Wie kann ich denn ein zweispaltiges String-Array in C++ anlegen? Wie kann ich das Array befüllen bzw. auslesen?

Beispiel Array:
      1         2
   -------------------------
1| ja          | nein    |
2| wahr      | falsch |
3| schwarz | weiß   |
4| alt         | jung    |
   -------------------------

Soweit ich weiß gibt es nur den Datentyp Char, und keinen String. Ist das richtig?

Gruß
Mike 


Antworten zu string-array in c++:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Doch es gibt Strings, ein zweidimensionales Array aus Strings kriegst du z.B. so:

// include um Strings verfuegbar zu machen
#include<string>

std::string myArray[4][2] =
    {
{ "ja", "nein" },
{ "wahr", "falsch" },
{ "schwarz", "weiss" },
{ "alt", "jung" }
    };

// Zugriff auf ein Element (3,0 = alt)(2,1 = weiss):
myArray[3][0]
myArray[2][1]
Kann man natuerlich auch mit ner Schleife machen:
for ( int row = 0; row < 4; row++ ) {
    for ( int col = 0; col < 2; col++ )
        std::cout << myArray[row][col] << " ";
    cout << endl;
}

Hi Lisaa,

danke, das ist dann ja gar nicht so schwehr. Hab die ganze Zeit mit char-Arrays experimentiert.

Kannst Du bitte noch kurz erklären wozu das  std:: in der Variablendeklaration bzw. in der Ausgabe benötigt wird.

Viele Grüße
MikeIO

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Das ist der namespace in dem die Sachen (wie z.B. string, cout, etc.) definiert sind. D.h. du musst entweder erklaeren, dass du den namespace irgendwo verwenden willst:

using namespace std;
oder du schreibst das std:: vor jedes Objekt aus diesem namespace.
 

is zwar schon bissle her, das das wer angeschaut hat, aber ich hab' ne Frage die dazu passt:
Klingt jetzt zwar bloed aber, wie kann ich ein Array neu definieren?

Ich kann sagen "char* string = "hallo";"
aber wie kann ich einfach NUR die laenge von dem array definieren?, schon klar: "char string[20];"
auch "char string[20] = "hallo";" funktioniert. aber was ist wenn der string jetzt schon existiert, ich kann sagen "string = "hallo";". Aber wie kann ich einfach nur die laenge neu definieren?????

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Gar nicht! Arrays sind nicht dynamisch, die Laenge ist daher fest. Es gibt allerdings in der STL dynamische Arrays (std::vector).

Hehe, so war das auch nicht gemeint.

Ich werde es anhand eines Beispielcode in Java versuchen zu erklären:

int[] x = new int[20];
//jetzt will ich x neu erzeugen mit laenge 21
//ziel - Loesung
x = new int[21];
//alternative Loesung
int[] y = new int[21];
x = y;
So, ich weis das die laenge nicht geaendert wird, sondern einfach nur ein neues Array erzeugt wird, und der Pointer auf das neue zeigt. (Das alte array wird von der Garbage collection freigegeben)

Gut, wie mach ich das jetzt in C++, die alternative Loesung ist ja ganz leicht, ich will es aber in einer Zeile, eben wie die erste Loesung.

Jetzt duerfte aber alles klar sein :-D 
« Letzte Änderung: 04.02.08, 20:51:11 von Fuxi »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Achso. Keine Ahnung. Wieso sollte man sowas wollen? Gibt das irgendeinen Sinn?

Jein, es ist so, dass ich eine Art "Java" in C++ nachschreiben will, was mir auch schon sehr gut gelingt.

Eben eine Klasse String schreiben, ich weis das es schon so ne Klasse gibt, ích will aber eben eine Eigene^^

Der Sinn des ganzen ist in Frage zu stellen, es ist auf jeden Fall eine gute Übung für mich.

Und eben in der Klasse "String" brauche ich das ganze, wobei ich es jetzt überhaupt anders gelöst habe, aber trotzdem danke


« Fehler_parser_errorc/c++ scheiter schon mir der ersten bsp.aufgabe »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
C++
C++ ist eine von der ISO standardisierte Programmiersprache und eine erweiterte Form von C zur objektorientierten, generischen und prozeduralen Programmierung. Weitestgeh...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...