_mbsnbicmp, _mbsnbicmp_l
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _mbsnbicmp, _mbsnbicmp_l.
Compares n
bytes of two multibyte-character strings, and ignores case.
Important
This API cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported with /ZW.
Syntax
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.
Return Value
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.
Remarks
The _mbsnbicmp
function performs an ordinal comparison of at most the first count
bytes of string1
and string2
. The comparison is performed by converting each character to lowercase; _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 up to count
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
.
Generic-Text Routine Mappings
Tchar.h routine | _UNICODE and _MBCS not defined | _MBCS defined | _UNICODE defined |
---|---|---|---|
_tcsnicmp |
_strnicmp |
_mbsnbicmp |
_wcsnicmp |
_tcsnicmp_l |
_strnicmp_l |
_mbsnbicmp_l |
_wcsnicmp_l |
Requirements
Routine | Required header |
---|---|
_mbsnbicmp |
<mbstring.h> |
For more compatibility information, see Compatibility.
Example
See the example for _mbsnbcmp, _mbsnbcmp_l.
.NET Framework Equivalent
Not applicable. To call the standard C function, use PInvoke
. For more information, see Platform Invoke Examples.
See Also
String Manipulation
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l