strcoll
|
Definido en el encabezado
<string.h>
|
||
|
int
strcoll
(
const
char
*
lhs,
const
char
*
rhs
)
;
|
||
Compara dos cadenas de bytes terminadas en nulo según la configuración regional actual definida por la categoría LC_COLLATE .
Contenidos |
Parámetros
| lhs, rhs | - | punteros a las cadenas de bytes terminadas en nulo a comparar |
Valor de retorno
- Valor negativo si lhs es menor que (precede) rhs .
- 0 si lhs es igual a rhs .
- Valor positivo si lhs es mayor que (sigue) rhs .
Notas
El orden de intercalación es el orden del diccionario: la posición de la letra en el alfabeto nacional (su clase de equivalencia ) tiene mayor prioridad que su caso o variante. Dentro de una clase de equivalencia, los caracteres en minúscula se intercalan antes que sus equivalentes en mayúscula y puede aplicarse un orden específico de la configuración regional a los caracteres con diacríticos. En algunas configuraciones regionales, grupos de caracteres se comparan como unidades de intercalación individuales . Por ejemplo, "ch" en checo sigue a "h" y precede a "i" , y "dzs" en húngaro sigue a "dz" y precede a "g" .
Ejemplo
#include <locale.h> #include <stdio.h> #include <string.h> int main(void) { setlocale(LC_COLLATE, "cs_CZ.utf8"); // Alternativamente, ISO-8859-2 (también conocido como Latin-2) // también puede funcionar en algunos sistemas operativos: // setlocale(LC_COLLATE, "cs_CZ.iso88592"); const char* s1 = "hrnec"; const char* s2 = "chrt"; printf("In the Czech locale: "); if (strcoll(s1, s2) < 0) printf("%s before %s\n", s1, s2); else printf("%s before %s\n", s2, s1); printf("In lexicographical comparison: "); if (strcmp(s1, s2) < 0) printf("%s before %s\n", s1, s2); else printf("%s before %s\n", s2, s1); }
Salida:
In the Czech locale: hrnec before chrt In lexicographical comparison: chrt before hrnec
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.24.4.3 La función strcoll (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.24.4.3 La función strcoll (p: TBD)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.24.4.3 La función strcoll (p: 366)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.21.4.3 La función strcoll (p: 329)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.11.4.3 La función strcoll
Véase también
|
(C95)
|
compara dos cadenas anchas de acuerdo a la configuración regional actual
(función) |
|
transforma una cadena para que strcmp produzca el mismo resultado que strcoll
(función) |
|
|
(C95)
|
transforma una cadena ancha para que
wcscmp
produzca el mismo resultado que
wcscoll
(función) |
|
compara dos cadenas
(función) |
|
|
Documentación de C++
para
strcoll
|
|