Namespaces
Variants

wcscoll

From cppreference.net
< c ‎ | string ‎ | wide
Definido en el encabezado <wchar.h>
int wcscoll ( const wchar_t * lhs, const wchar_t * rhs ) ;
(desde C95)

Compara dos cadenas anchas terminadas en nulo según el orden de intercalación definido por la LC_COLLATE categoría de la configuración regional actualmente instalada.

Contenidos

Parámetros

lhs, rhs - punteros a las cadenas anchas 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 a) 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 <stdio.h>
#include <wchar.h>
#include <locale.h>
void try_compare(const wchar_t* p1, const wchar_t* p2)
{
    if(wcscoll(p1, p2) < 0)
        printf("%ls before %ls\n", p1, p2);
    else
        printf("%ls before %ls\n", p2, p1);
}
int main(void)
{
    setlocale(LC_ALL, "en_US.utf8");
    printf("In the American locale: ");
    try_compare(L"hrnec", L"chrt");
    setlocale(LC_COLLATE, "cs_CZ.utf8");
    printf("In the Czech locale: ");
    try_compare(L"hrnec", L"chrt");
    setlocale(LC_COLLATE, "en_US.utf8");
    printf("In the American locale: ");
    try_compare(L"år", L"ängel");
    setlocale(LC_COLLATE, "sv_SE.utf8");
    printf("In the Swedish locale: ");
    try_compare(L"år", L"ängel");
}

Salida posible:

In the American locale: chrt before hrnec
In the Czech locale: hrnec before chrt
In the American locale: ängel before år
In the Swedish locale: år before ängel

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.29.4.4.2 La función wcscoll (p: 433-434)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.24.4.4.2 La función wcscoll (p: 379-380)

Véase también

compara dos cadenas de acuerdo a la configuración regional actual
(función)
(C95)
transforma una cadena ancha para que wcscmp produzca el mismo resultado que wcscoll
(función)
(C95)
compara dos cadenas anchas
(función)