Comparación de cadenas
D sobrecarga los operadores relacionales binarios y permite utilizarlos para las comparaciones de cadenas, así como para comparaciones de números enteros. Los operadores relacionales realizan la comparación de cadenas siempre que ambos operandos sean del tipo string, o cuando un operando es del tipo string y el otro operando se pueda promocionar al tipo string, como se describe en Asignación de cadenas. Todos los operadores relacionales se pueden utilizar para comparar cadenas:
Tabla 6–1 Operadores relacionales de D para cadenas
<
|
el operando de la izquierda es menor que el de la derecha
|
<=
|
el operando de la izquierda es menor o igual que el de la derecha
|
>
|
el operando de la izquierda es mayor que el de la derecha
|
>=
|
el operando de la izquierda es mayor o igual que el de la derecha
|
==
|
el operando de la izquierda es igual que el de la derecha
|
!=
|
el operando de la izquierda es distinto que el de la derecha
|
Al igual que con los números enteros, cada operador evalúa el valor del tipo int,que es igual a uno si la condición es true, o cero si es false.
Los operadores relacionales comparan las dos cadenas de entrada byte a byte, igual que la rutina de la biblioteca C strcmp(3C). Cada byte se compara utilizando su valor de entero correspondiente en el conjunto de caracteres ASCII, como se muestra en ascii(5), hasta que se lea un byte nulo o se alcance la longitud máxima de la cadena. Algunos ejemplos de comparaciones de cadenas D y sus resultados son:
"coffee" < "espresso"
|
... devuelve 1 (true)
|
"coffee" == "coffee"
|
... devuelve 1 (true)
|
"coffee" >= "mocha"
|
... devuelve 0 (false)
|
|