Frage zu String Array
-
Hallo zusammen,
ich habe eine Frage an euch. Normalerweise fängt man bei einem Array ja von Null an zu zählen. Ich wusste, dass das bei Strings anders war. Doch verstehe ich den folgenden Unterschied nicht:String Array[]={"Hallo", "Tschüss", "Tach"}; ShowMessage(Array[1]); //Hier wird "Tschüss" ausgegeben
String wort="ABCDE"; ShowMessage(wort[1]); //Hier wird A ausgegeben.
Beim ersten Beispiel wird das zweite Elemet ausgegeben und beim zweite
Beispiel wird das erste Element ausgegeben - obwohl beide Strings sind.Woran liegt das?
Vielen Dank
lg, freakC++
-
freakC++ schrieb:
Normalerweise fängt man bei einem Array ja von Null an zu zählen. Ich wusste, dass das bei Strings anders war.
Strings werden aus historischen Gründen (ich habe sie hier näher ausgeführt) ab 1 indiziert - Strings, wohlgemerkt, nicht etwa alles, was in irgendeiner Weise mit Strings zu tun hat.
-
Ein Array von String ist ungleich ein String!
-
Hallo,
aber ein String ist doch automatisch ein Array ?!Vielen Dank
lg, freakC++
-
Hallo
Ja ein String beinhaltet ein Array von chars. Aber ein Array von Strings sind zwei verschiedene Ebenen (1. Array von String-Instanzen, 2. In jeder String-Instanz ein Array von chars). Beide Ebenen sind unabhängig und haben ihre eigene Indizierung.
bis bald
akari
-
freakC++ schrieb:
Hallo,
aber ein String ist doch automatisch ein Array ?!Vielen Dank
lg, freakC++Nein, ein String ist nicht automatisch ein Array.
Es kommt noch aus der C Welt wo gern ein Array aus char als string bezeichnet wird.
Obwohl das nichts mit der std::string Klasse und noch weniger mit der AnsiString Klasse zu tun hat.
-
Hallo,
vielen Dank für eure Antworten. Ich habe nun (beinahe) alles verstanden.Also, kann ich jetzt sagen, dass in C++ ein String automatisch ein Array ist??
Vielen Dank
lg, freakC++
-
freakC++ schrieb:
Also, kann ich jetzt sagen, dass in C++ ein String automatisch ein Array ist??
Nein. Wenn du eine int-Variable definierst, ist das doch auch nicht automatisch ein Array. Wenn du ein String-Variable hast, ist das halt nur eine Instanz der Klasse String. Ein String-Objekt beinhaltet zwar ein Array von chars, aber deshalb ist ein String kein Array, es sei denn du beziehst dich auf ein char-Array, das gewissermaßen auch einen String (besser gesagt eine Zeichenkette) enthält. Aber dir ging es ja um die Klasse String. Wenn du ein Array von String willst, musst du das shcon so definieren (wie in deinem ersten Beispiel).
-
Ok, vielen Dank
lg, freakC++