Handbuch zur dynamischen Ablaufverfolgung in Solaris

Zeichenkettenzuweisung

Anders als die Zuweisung von char *-Variablen werden Zeichenketten nicht per Verweis, sondern per Wert zugewiesen. Die Zeichenkettenzuweisung erfolgt mit dem Operator =. Dabei werden die tatsächlichen Byte der Zeichenkette ab dem Quelloperanden bis zu einschließlich dem Null-Byte in die Variable auf der linken Seite kopiert, bei der es sich um den Typ string handeln muss. Sie können eine neue Variable des Typs string erzeugen, indem Sie ihr einen Ausdruck des Typs string zuweisen. So würde beispielsweise die D-Anweisung:

s = "hello";

eine neue Variable s des Typs string erzeugen und die 6 Byte der Zeichenkette "hello" in sie kopieren (5 druckbare Zeichen plus Null-Byte). Die Zeichenkettenzuweisung verhält sich analog zur C-Bibliotheksfunktion strcpy(3C) mit der Abweichung, dass sich bei Überschreiten der Speicherkapazität der Zielzeichenkette durch die Ausgangszeichenkette eine Zeichenkette ergibt, die automatisch an diesem Grenzwert abgeschnitten wird.

Einer Zeichenkettenvariable kann auch ein Ausdruck eines mit Zeichenketten verträglichen Typs zugewiesen werden. In diesem Fall erweitert der D-Compiler den Ausgangsausdruck automatisch auf den String-Typ und führt eine Zeichenkettenzuweisung durch. Der D-Compiler lässt für beliebige Ausdrücke des Typs char * oder char[n] (d. h. einen skalaren Vektor des Typs char mit beliebiger Größe) eine Erweiterung auf string zu.