Namespaces
Variants

wmemcmp

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

Compara los primeros count caracteres anchos de los arrays de caracteres anchos (o tipos enteros compatibles) apuntados por lhs y rhs . La comparación se realiza lexicográficamente.

El signo del resultado es el signo de la diferencia entre los valores del primer par de caracteres anchos que difieren en los arreglos que se están comparando.

Si count es cero, la función no hace nada.

Contenidos

Parámetros

lhs, rhs - punteros a los arreglos de caracteres anchos a comparar
count - número de caracteres anchos a examinar

Valor de retorno

Valor negativo si el valor del primer carácter ancho diferente en lhs es menor que el valor del carácter ancho correspondiente en rhs : lhs precede a rhs en orden lexicográfico.

0 si todos count caracteres anchos de lhs y rhs son iguales.

Valor positivo si el valor del primer carácter ancho diferente en lhs es mayor que el valor del carácter ancho correspondiente en rhs : rhs precede a lhs en orden lexicográfico.

Notas

Esta función no es sensible a la configuración regional y no presta atención a los valores de los wchar_t objetos que examina: los nulos así como los caracteres anchos no válidos también se comparan.

Ejemplo

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
void demo(const wchar_t* lhs, const wchar_t* rhs, size_t sz)
{
    for (size_t n = 0; n < sz; ++n)
        putwchar(lhs[n]);
    int rc = wmemcmp(lhs, rhs, sz);
    if (rc == 0)
        wprintf(L" compares equal to ");
    else if(rc < 0)
        wprintf(L" precedes ");
    else if(rc > 0)
        wprintf(L" follows ");
    for (size_t n = 0; n < sz; ++n)
        putwchar(rhs[n]);
    wprintf(L" in lexicographical order\n");
}
int main(void)
{
    setlocale(LC_ALL, "en_US.utf8");
    wchar_t a1[] = {L'α',L'β',L'γ'};
    wchar_t a2[] = {L'α',L'β',L'δ'};
    size_t sz = sizeof a1 / sizeof *a1;
    demo(a1, a2, sz);
    demo(a2, a1, sz);
    demo(a1, a1, sz);
}

Salida:

αβγ precedes αβδ in lexicographical order
αβδ follows αβγ in lexicographical order
αβγ compares equal to αβγ in lexicographical order

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.29.4.4.5 La función wmemcmp (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.29.4.4.5 La función wmemcmp (p: TBD)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.29.4.4.5 La función wmemcmp (p: 435)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.24.4.4.5 La función wmemcmp (p: 381)

Véase también

(C95)
compara dos cadenas anchas
(función)
compara dos buffers
(función)
(C95)
compara una cantidad determinada de caracteres de dos cadenas anchas
(función)