Share via


_mbsnbicmp, _mbsnbicmp_l

2 つのマルチバイト文字列の n バイトを比較し、大文字/小文字を無視します。

重要

この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル 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' の間に位置する 2 つの文字列 ('['、'\'、']'、'^'、'_'、'') は、大文字と小文字に応じて比較が異なります。 たとえば、2 つの文字列 "ABCDE" と "ABCD^" は、比較が小文字 ("abcde" > "abcd^") の場合は 1 つの方法を比較し、大文字の場合はもう一方の方法 ("ABCDE" < "ABCD^") を比較します。

_mbsnbicmp 関数は、現在使用中のマルチバイト コード ページに基づいて、マルチバイト文字列を認識します。 現在のロケール設定の影響を受けません。

null ポインターのstring1string2場合は、「_mbsnbicmpパラメーターの検証」の説明に従って無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、関数は _NLSCMPERROR を返し、errnoEINVAL に設定します。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

汎用テキスト ルーチンのマップ

Tchar.h のルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_tcsnicmp _strnicmp _mbsnbicmp _wcsnicmp
_tcsnicmp_l _strnicmp_l _mbsnbicmp_l _wcsnicmp_l

必要条件

ルーチンによって返される値 必須ヘッダー
_mbsnbicmp <mbstring.h>

互換性の詳細については、「 Compatibility」を参照してください。

_mbsnbcmp_mbsnbcmp_l の例を参照してください。

関連項目

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