_mbsnbicmp, _mbsnbicmp_l
Compares n bytes of two multibyte-character strings, ignoring case.
int _mbsnbicmp( const unsigned char *string1, const unsigned char *string2, size_t count );
Parameters
- string1, string2
-
Null-terminated strings to compare.
- count
-
Number of bytes to compare.
The return value indicates the relationship between the substrings.
| Return value | Description |
|---|---|
| < 0 | string1 substring less than string2 substring. |
| 0 | string1 substring identical to string2 substring. |
| > 0 | string1 substring greater than string2 substring. |
On an error, _mbsnbcmp returns _NLSCMPERROR, which is defined in String.h and Mbstring.h.
The _mbsnbicmp function lexicographically compares, at most, the first count bytes of string1 and string2. The comparison is performed without regard to case; _mbsnbcmp is a case-sensitive version of _mbsnbicmp. The comparison ends if a terminating null character is reached in either string before count characters are compared. If the strings are equal when a terminating null character is reached in either string before count characters are compared, the shorter string is lesser.
_mbsnbicmp is similar to _mbsnicmp, except that it compares strings by bytes instead of by characters.
Two strings containing characters located between 'Z' and 'a' in the ASCII table ('[', '\', ']', '^', '_', and '`') compare differently, depending on their case. For example, the two strings "ABCDE" and "ABCD^" compare one way if the comparison is lowercase ("abcde" > "abcd^") and the other way ("ABCDE" < "ABCD^") if it is uppercase.
_mbsnbicmp recognizes multibyte-character sequences according to the multibyte code page currently in use. It is not affected by the current locale setting.
If either string1 or string2 is a null pointer, _mbsnbicmp invokes the invalid parameter handler as described in Parameter Validation. If execution is allowed to continue, the function returns _NLSCMPERROR and sets errno to EINVAL.
| Tchar.h routine | _UNICODE and _MBCS not defined | _MBCS defined | _UNICODE defined |
|---|---|---|---|
| _tcsnicmp | _strnicmp | _mbsnbicmp | _wcsnicmp |
| _tcsnicmp_l | _strnicmp_l | _mbsnbicmp_l | _wcsnicmp_l |
| Routine | Required header | Compatibility |
|---|---|---|
| _mbsnbicmp | <mbstring.h> | Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
For more compatibility information, see Compatibility in the Introduction.
See the example for _mbsnbcmp, _mbsnbcmp_l.
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.