Handbuch zur dynamischen Ablaufverfolgung in Solaris

Zeichenkettenvergleich

D überlädt die binären relationalen Operatoren und erlaubt ihren Einsatz für Zeichenketten- sowie Ganzzahlenvergleiche. Die relationalen Operatoren führen einen Zeichenkettenvergleich durch, wenn beide Operanden den Typ string besitzen oder wenn ein Operand ein string ist und der andere Operand, wie unter beschrieben, auf den Typ string (siehe Zeichenkettenzuweisung) erweitert werden kann. Zum Vergleichen von Zeichenketten können alle relationalen Operatoren verwendet werden:

Tabelle 6–1 Relationale Operatoren für Zeichenketten in D

<

Operand auf linker Seite ist kleiner als Operand auf rechter Seite 

<=

Operand auf linker Seite ist kleiner als oder gleich dem Operanden auf rechter Seite 

>

Operand auf linker Seite ist größer als Operand auf rechter Seite 

>=

Operand auf linker Seite ist größer als oder gleich dem Operanden auf rechter Seite 

==

Operand auf linker Seite ist gleich dem Operanden auf rechter Seite 

!=

Operand auf linker Seite ist ungleich dem Operanden auf rechter Seite 

Wie auch bei Ganzzahlen ergibt jeder Operator einen Wert des Typs int, der gleich 1 ist, wenn die Bedingung wahr ist und 0, wenn sie falsch ist.

Die relationalen Operatoren vergleichen die beiden eingegebenen Zeichenketten Byte für Byte auf ähnliche Weise wie die C-Bibliotheksroutine strcmp(3C). Jedes Byte wird so lange über seinen entsprechenden ganzzahligen Wert im ASCII-Zeichensatz (siehe ascii(5)) verglichen, bis ein Null-Byte gelesen wird oder die maximale Zeichenkettenlänge erreicht ist. Sehen Sie hier einige Beispiele für Zeichenkettenvergleiche in D und ihre Ergebnisse:

"coffee" < "espresso"

... gibt 1 (wahr) zurück 

"coffee" == "coffee"

... gibt 1 (wahr) zurück 

"coffee" >= "mocha"

... gibt 0 (falsch) zurück