Bagikan melalui


_mbsnbcmp, _mbsnbcmp_l

Membandingkan n byte pertama dari dua string karakter multibyte.

Penting

API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.

Sintaks

int _mbsnbcmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbcmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Parameter

string1, string2
String yang akan dibandingkan.

count
Jumlah byte yang akan dibandingkan.

locale
Lokal yang akan digunakan.

Nilai hasil

Nilai pengembalian menunjukkan hubungan ordinal antara substring dan string1 string2.

Nilai hasil Deskripsi
< 0 string1 substring kurang dari string2 substring.
0 string1 substring identik dengan string2 substring.
> 0 string1 substring lebih besar dari string2 substring.

Pada kesalahan validasi parameter, _mbsnbcmp dan kembalikan _NLSCMPERROR, yang didefinisikan dalam <string.h> dan <mbstring.h>_mbsnbcmp_l.

Keterangan

Fungsi _mbsnbcmp membandingkan paling banyak byte pertama count dalam string1 dan string2 dan mengembalikan nilai yang menunjukkan hubungan antara substring. _mbsnbcmp adalah versi peka huruf besar/kecil dari _mbsnbicmp. Tidak seperti _mbsnbcoll, _mbsnbcmp tidak terpengaruh oleh urutan kolase lokal. _mbsnbcmpmengenali urutan karakter multibyte sesuai dengan halaman kode multibyte saat ini.

_mbsnbcmp menyerupai _mbsncmp, kecuali yang _mbsncmp membandingkan string menurut karakter daripada byte.

Nilai output dipengaruhi oleh LC_CTYPE pengaturan kategori lokal, yang menentukan byte prospek dan byte berikutnya dari karakter multibyte. Untuk informasi selengkapnya, lihat setlocale . Fungsi ini _mbsnbcmp menggunakan lokal saat ini untuk perilaku yang bergantung pada lokal ini. Fungsi _mbsnbcmp_l ini identik kecuali menggunakan locale parameter sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.

Jika atau string1 string2 adalah penunjuk null, fungsi-fungsi ini memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan _NLSCMPERROR, dan errno diatur ke EINVAL.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Pemetaan rutin teks generik

Rutinitas Tchar.h _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tcsncmp strncmp _mbsnbcmp wcsncmp
_tcsncmp_l strncmp _mbsnbcml wcsncmp

Persyaratan

Rutin Header yang diperlukan
_mbsnbcmp <mbstring.h>
_mbsnbcmp_l <mbstring.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_mbsnbcmp.c
#include <mbstring.h>
#include <stdio.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown fox jumps over the lazy dog";

int main( void )
{
   char tmp[20];
   int result;
   printf( "Compare strings:\n          %s\n", string1 );
   printf( "          %s\n\n", string2 );
   printf( "Function: _mbsnbcmp (first 10 characters only)\n" );
   result = _mbsncmp( string1, string2 , 10 );
   if( result > 0 )
      _mbscpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      _mbscpy_s( tmp, sizeof(tmp), "less than" );
   else
      _mbscpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
   printf( "Function: _mbsnicmp _mbsnicmp (first 10 characters only)\n" );
   result = _mbsnicmp( string1, string2, 10 );
   if( result > 0 )
      _mbscpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      _mbscpy_s( tmp, sizeof(tmp), "less than" );
   else
      _mbscpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
}

Output

Compare strings:
          The quick brown dog jumps over the lazy fox
          The QUICK brown fox jumps over the lazy dog

Function: _mbsnbcmp (first 10 characters only)
Result:   String 1 is greater than string 2

Function: _mbsnicmp _mbsnicmp (first 10 characters only)
Result:   String 1 is equal to string 2

Lihat juga

Manipulasi string
_mbsnbcat, _mbsnbcat_l
_mbsnbicmp, _mbsnbicmp_l
strncmp, , wcsncmp_mbsncmp,_mbsncmp_l
_strnicmp, , _wcsnicmp_mbsnicmp, _strnicmp_l, , _wcsnicmp_l,_mbsnicmp_l
Lokal
Interpretasi urutan karakter multibyte