Bagikan melalui


strncmp, , wcsncmp_mbsncmp,_mbsncmp_l

Membandingkan hingga jumlah karakter yang ditentukan dari dua string.

Penting

_mbsncmp dan _mbsncmp_l 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 strncmp(
   const char *string1,
   const char *string2,
   size_t count
);
int wcsncmp(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count
);
int _mbsncmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsncmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);int _mbsnbcmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);

Parameter

string1, string2
String untuk dibandingkan.

count
Jumlah karakter yang akan dibandingkan.

locale
Lokal untuk digunakan.

Nilai hasil

Nilai pengembalian menunjukkan hubungan substring string1 dan string2 sebagai berikut.

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, _mbsncmp dan kembalikan _NLSCMPERROR, yang didefinisikan dalam <string.h> dan <mbstring.h>_mbsncmp_l .

Keterangan

Fungsi ini strncmp melakukan perbandingan ordinal paling banyak karakter pertama count dalam string1 dan string2 dan mengembalikan nilai yang menunjukkan hubungan antara substring. strncmp adalah versi peka huruf besar/kecil dari _strnicmp. wcsncmp dan _mbsncmp merupakan versi peka huruf besar/kecil dan _wcsnicmp _mbsnicmp.

wcsncmp dan _mbsncmp adalah versi karakter lebar dan multibyte-character dari strncmp. Argumen adalah wcsncmp string karakter lebar. Argumen adalah _mbsncmp string multibyte-character. _mbsncmp mengenali urutan karakter multibyte sesuai dengan halaman kode multibyte dan mengembalikan _NLSCMPERROR kesalahan.

Selain itu, _mbsncmp dan _mbsncmp_l validasi parameter. Jika string1 atau string2 adalah penunjuk null dan count tidak sama dengan 0, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, _mbsncmp dan _mbsncmp_l mengembalikan _NLSCMPERROR dan mengatur errno ke EINVAL. strncmp dan wcsncmp tidak memvalidasi parameternya. Fungsi-fungsi ini berulah secara identik jika tidak.

Perilaku perbandingan _mbsncmp dan _mbsncmp_l dipengaruhi oleh pengaturan LC_CTYPE pengaturan kategori lokal. Ini mengontrol deteksi byte karakter multibyte di awal dan akhir. Untuk informasi selengkapnya, lihat setlocale . Fungsi ini _mbsncmp menggunakan lokal saat ini untuk perilaku yang bergantung pada lokal ini. Fungsi _mbsncmp_l ini identik kecuali menggunakan locale parameter sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal. Jika lokal adalah lokal byte tunggal, perilaku fungsi-fungsi ini identik dengan strncmp.

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

Pemetaan rutin teks generik

TCHAR.H Rutin _UNICODE dan _MBCS tidak ditentukan _MBCS Didefinisikan _UNICODE Didefinisikan
_tcsnccmp strncmp _mbsncmp wcsncmp
_tcsncmp strncmp _mbsnbcmp wcsncmp
_tccmp Memetakan ke makro atau fungsi sebaris _mbsncmp Memetakan ke makro atau fungsi sebaris

Persyaratan

Rutin Header yang diperlukan
strncmp <string.h>
wcsncmp <string.h> atau <wchar.h>
_mbsncmp, _mbsncmp_l <mbstring.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Contoh

// crt_strncmp.c
#include <string.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      %s\n\n",
           string1, string2 );
   printf( "Function:   strncmp (first 10 characters only)\n" );
   result = strncmp( string1, string2 , 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n\n", tmp );
   printf( "Function:   strnicmp _strnicmp (first 10 characters only)\n" );
   result = _strnicmp( string1, string2, 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n", tmp );
}
Compare strings:
      The quick brown dog jumps over the lazy fox
      The QUICK brown fox jumps over the lazy dog

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

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

Lihat juga

Manipulasi string
Lokal
Interpretasi urutan karakter multibyte
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcmp, , wcscmp_mbscmp
strcoll Fungsi
_strnicmp, , _wcsnicmp_mbsnicmp, _strnicmp_l, , _wcsnicmp_l,_mbsnicmp_l
strrchr, , wcsrchr_mbsrchr,_mbsrchr_l
_strset, , _strset_l_wcsset, _wcsset_l, , _mbsset,_mbsset_l
strspn, , wcsspn_mbsspn,_mbsspn_l