Udostępnij za pośrednictwem


_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l

Porównuje bajty n dwóch ciągów wielobajtowych przy użyciu wielobajtowych informacji o stronie kodowej.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

int _mbsnbcoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbcoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);
int _mbsnbicoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Parametry

string1, string2
Ciągi do porównania.

count
Liczba bajtów do porównania.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Wartość zwracana wskazuje relację podciągów i string1string2.

Wartość zwracana opis
< 0 string1 podciąg mniej niż string2 podciąg.
0 string1 podciąg identyczny z string2 podciągem.
> 0 string1 podciąg większy niż string2 podciąg.

Jeśli string1 element lub string2 jest countNULL większy niż INT_MAX, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają _NLSCMPERROR i ustawiają wartość errnoEINVAL. Aby użyć _NLSCMPERRORpolecenia , dołącz ciąg.h lub Mbstring.h.

Uwagi

Każda z tych funkcji co najwyżej sortuje pierwsze count bajty w string1 i string2 zwraca wartość wskazującą relację między wynikowymi podciągami string1 i string2. Jeśli ostatni bajt w podciągu lub string2 jest bajtem ołowiustring1, nie jest uwzględniony w porównaniu; te funkcje porównują tylko pełne znaki w podciągach. _mbsnbicoll jest wersją bez uwzględniania wielkości liter w pliku _mbsnbcoll. Podobnie jak _mbsnbcmp i _mbsnbicmp, _mbsnbcoll i _mbsnbicoll sortuj dwa ciągi wielobajtowe zgodnie z kolejnością leksykograficzną określoną przez aktualnie używaną stronę kodową wielobajtową.

W przypadku niektórych stron kodu i odpowiadających im zestawów znaków kolejność znaków w zestawie znaków może się różnić od kolejności znaków leksykograficznej. W ustawieniach regionalnych "C" kolejność znaków w zestawie znaków ASCII jest taka sama jak kolejność leksykograficzna znaków. Jednak na niektórych stronach kodu europejskiego, na przykład znak "a" (wartość 0x61) poprzedza znak "ä" (wartość 0xE4) w zestawie znaków, ale znak "ä" poprzedza znak "a" leksykograficznie. Aby wykonać porównanie leksykograficzne ciągów według bajtów w takim wystąpieniu, użyj polecenia _mbsnbcoll zamiast _mbsnbcmp; aby sprawdzić tylko pod kątem równości ciągów, użyj polecenia _mbsnbcmp.

coll Ponieważ funkcje sortują ciągi leksykograficznie w celu porównania, podczas gdy cmp funkcje po prostu testują równość ciągów, coll funkcje są znacznie wolniejsze niż odpowiednie cmp wersje. Dlatego funkcje powinny być używane tylko wtedy, coll gdy istnieje różnica między kolejnością zestawu znaków a kolejnością znaków leksykograficznej na bieżącej stronie kodowej, a ta różnica jest interesująca dla porównania.

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. W celu uzyskania więcej informacji, zobacz następujący temat: setlocale. Wersje tych funkcji bez sufiksu _l używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Wersje z _l sufiksem są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura tchar.h _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcsncoll _strncoll _mbsnbcoll _wcsncoll
_tcsncoll_l _strncoll_l _mbsnbcoll_l _wcsncoll_l
_tcsnicoll _strnicoll _mbsnbicoll _wcsnicoll
_tcsnicoll_l _strnicoll_l _mbsnbicoll_l _wcsnicoll_l

Wymagania

Procedura Wymagany nagłówek
_mbsnbcoll <mbstring.h>
_mbsnbcoll_l <mbstring.h>
_mbsnbicoll <mbstring.h>
_mbsnbicoll_l <mbstring.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Zobacz też

Manipulowanie ciągami
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcoll, funkcje
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l