Share via


_mbsnbicmp, _mbsnbicmp_l

比較兩個多位元組字元字串的 n 個位元組,並忽略大小寫。

重要

這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 CRT functions not supported in Universal Windows Platform apps (通用 Windows 平台應用程式中不支援的 CRT 函式)。

語法

int _mbsnbicmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);

參數

string1, string2
以 Null 結束的待比較字串。

count
要比較的位元組數目。

傳回值

傳回值表示子字串之間的關聯性。

傳回值 描述
< 0 string1 子字串小於 string2 子字串。
0 string1 子字串等於 string2 子字串。
> 0 string1 子字串大於 string2 子字串。

發生錯誤時,_mbsnbicmp 會傳回 _NLSCMPERROR (定義於 String.h 和 Mbstring.h 中)。

備註

_mbsnbicmp 函式最多會對 countstring1 的前 string2 個位元組執行序數比較。 系統會將每個字元轉換成小寫來執行比較;_mbsnbcmp 是區分大小寫版本的 _mbsnbicmp。 如果在比較 count 個字元之前任一字串中已達結束的 null 字元,則會結束比較。 如果字串相等,當比較 count 個字元之前任一字串中已達結束的 null 字元時,較短的字串為較小者。

_mbsnbicmp 類似於 _mbsnbcmp,但會比較最多 count 個位元組的字串,而不是字元。

兩個字串包含位於 ASCII 資料表中 'Z' 和 'a' 之間的字元('['、'\'、']'、'^'、'_' 和 ''') 會根據大小寫而不同地比較。 例如,如果比較是小寫,則兩個字串 「ABCDE」 和 「ABCD^」 會比較一種方式 (「abcde > 」 「abcd^」) 和另一種方式 (「ABCDE < 」 「ABCD^」)。

_mbsnbicmp 根據目前使用的多位元組字碼頁來辨識多位元組字元序列。 它不受目前地區設定的影響。

string1如果 或 string2 為 Null 指標, _mbsnbicmp 請叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行,函式會傳回 _NLSCMPERROR,並將 errno 設為 EINVAL

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

泛型文字常式對應

Tchar.h 常式 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_tcsnicmp _strnicmp _mbsnbicmp _wcsnicmp
_tcsnicmp_l _strnicmp_l _mbsnbicmp_l _wcsnicmp_l

需求

常式 必要的標頭
_mbsnbicmp <mbstring.h>

如需相容性詳細資訊,請參閱相容性

範例

請參閱 、 的 _mbsnbcmp_mbsnbcmp_l 範例。

另請參閱

字串操作
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l