Namespaces
Variants

wcsncmp

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

Compara como máximo count caracteres anchos de dos cadenas anchas terminadas en nulo. 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 las cadenas que se están comparando.

El comportamiento es indefinido si lhs o rhs no son punteros a cadenas terminadas en nulo.

Contenidos

Parámetros

lhs, rhs - punteros a las cadenas anchas terminadas en nulo a comparar
count - número máximo de caracteres a comparar

Valor de retorno

Valor negativo si lhs aparece antes que rhs en orden lexicográfico.

Cero si lhs y rhs se comparan como iguales.

Valor positivo si lhs aparece después de rhs en orden lexicográfico.

Notas

Esta función no es sensible a la configuración regional, a diferencia de wcscoll y wcsxfrm .

Ejemplo

#include <stdio.h>
#include <wchar.h>
#include <locale.h>
void demo(const wchar_t *lhs, const wchar_t *rhs, int sz)
{
    int rc = wcsncmp(lhs, rhs, sz);
    if(rc == 0)
        printf("First %d characters of [%ls] equal [%ls]\n", sz, lhs, rhs);
    else if(rc < 0)
        printf("First %d characters of [%ls] precede [%ls]\n", sz, lhs, rhs);
    else if(rc > 0)
        printf("First %d characters of [%ls] follow [%ls]\n", sz, lhs, rhs);
}
int main(void)
{
    const wchar_t *str1 = L"안녕하세요";
    const wchar_t *str2 = L"안녕히 가십시오";
    setlocale(LC_ALL, "en_US.utf8");
    demo(str1, str2, 5);
    demo(str2, str1, 8);
    demo(str1, str2, 2);
}

Salida:

First 5 characters of [안녕하세요] precede [안녕히 가십시오]
First 8 characters of [안녕히 가십시오] follow [안녕하세요]
First 2 characters of [안녕하세요] equal [안녕히 가십시오]

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.29.4.4.3 La función wcsncmp (p: 434)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.24.4.4.3 La función wcsncmp (p: 380)

Véase también

(C95)
compara dos cadenas anchas
(función)
(C95)
compara una cantidad determinada de caracteres anchos de dos arreglos
(función)
(C95)
compara dos cadenas anchas de acuerdo con la configuración regional actual
(función)