Share via


_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