String

aus RHWiki, der freien Romhacking-Enzyklopädie

String ist gleichbedeutend mit Zeichenkette, also eine Folge von Zeichen. Wird zur Speicherung von Texten aller Art verwendet, ob nun einzelne Wörter oder ganze Sätze.

Repräsentation

Die Zeichen eines Strings können in Ascii, Unicode oder in einem anderen spezifischen Format vorliegen. In ersterem Fall verbraucht jedes Zeichen genau ein Byte, bei Unicode sind es 2 oder mehr Byte.
In den meisten Konsolenspielen wird ebenfalls 1 Byte pro Zeichen verwendet. Die Übersetzung erfolgt hier mit Hilfe einer Table.

Zusätzlich muss die Länge des Strings bekannt sein (man stellt sich vor, der String liegt irgendwo im Speicher, man will ihn lesen und muss dabei natürlich wissen wo er zu Ende ist).
Dafür gibt es drei Varianten:

  • 1. Ganz zu Anfang sind ein paar Bytes reserviert, welche die Länge direkt angeben.
  • 2. Am Ende des Strings befindet sich ein eindeutiges Zeichen, welches das Ende kennzeichnet.
  • 3. Die Länge des Strings ist im Programm fest bestimmt.

Heutzutage ist Variante 2 die gängigere. In der Programmiersprache C wird zur Markierung ein Byte mit dem Wert 0 verwendet. Die meisten anderen Sprachen haben es so übernommen. Auf alten DOS-Systemen wurde '$' verwendet.
In Konsolenspielen findet man häufig auch 0xFF oder einen anderen Wert.

Das Format eines Strings ist meist durch den Kontext fest bestimmt und keinesfalls frei wählbar.

Da Strings oft beliebige Länge haben können, lassen sie sich nicht direkt in ein Register laden. Stattdessen wird immer mit einem Pointer auf den String(-Anfang) gerechnet (ähnlich wie bei allen größeren Strukturen).

Siehe auch

'Persönliche Werkzeuge