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