Manuel de suivi dynamique Solaris

Comparaison de chaînes

D surcharge les opérateurs relationnels binaires et autorise leur utilisation dans les comparaisons de chaînes et de nombres entiers. Les opérateurs relationnels comparent les chaînes chaque fois que les deux opérandes sont de type string ou lorsqu'un opérande est de type string tandis que l'autre peut être promu en string, comme indiqué à la section Assignation de chaîne. Vous pouvez utiliser tous les opérateurs relationnels pour comparer des chaînes :

Tableau 6–1 Opérateurs relationnels et chaînes en langage D

<

opérande gauche inférieur à l'opérande droit 

<=

opérande gauche inférieur ou égal à l'opérande droit 

>

opérande gauche supérieur à l'opérande droit 

>=

opérande gauche supérieur ou égal à l'opérande droit 

==

opérande gauche égal à l'opérande droit 

!=

opérande gauche différent de l'opérande droit 

De même qu'avec les nombres entiers, chaque opérateur évalue la valeur du type int qui est égale à 1 si la condition est vraie et à 0 si la condition est fausse.

Les opérateurs relationnels comparent les deux chaînes d'entrée octet par octet, de la même manière que la routine de bibliothèque strcmp(3C) en langage C. Chaque octet est comparé à l'aide de sa valeur correspondante dans le jeu de caractères ASCII, comme illustré dans ascii(5), jusqu'à ce qu'un octet nul soit lu ou que la longueur de chaîne maximale soit atteinte. Exemples de comparaison de chaînes en D et leurs résultats :

"coffee" < "espresso"

... renvoie 1 (vrai) 

"coffee" == "coffee"

... renvoie 1 (vrai) 

"coffee" >= "mocha"

... renvoie 0 (faux)