_mbsnbcmp
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

_mbsnbcmp

Compares the first n bytes of two multibyte character strings.

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

Parameters

string1, string2
Strings to compare.
count
Number of bytes to compare.

Return Value

The return value indicates the relation of the substrings of string1 and string.

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 _mbsnbcmp function lexicographically compares, at most, the first count bytes in string1 and string2 and returns a value indicating the relationship between the substrings. _mbsnbcmp is a case-sensitive version of _mbsnbicmp. Unlike strcoll, _mbsnbcmp is not affected by locale. _mbsnbcmp recognizes multibyte-character sequences according to the current multibyte code page.

_mbsnbcmp is similar to _mbsncmp, except that _mbsnbcmp compares strings by characters rather than by bytes.

Generic-Text Routine Mappings

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_tcsncmp strncmp _mbsnbcmp wcsncmp

Requirements

Routine Required header Compatibility
_mbsnbcmp <mbstring.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.

Libraries

All versions of the C run-time libraries.

Example

// crt_strnbcmp.c
#include <mbstring.h>
#include <stdio.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown fox jumps over the lazy dog";

int main( void )
{
   char tmp[20];
   int result;
   printf( "Compare strings:\n          %s\n", string1 );
   printf( "          %s\n\n", string2 );
   printf( "Function: _mbsnbcmp (first 10 characters only)\n" );
   result = _mbsncmp( string1, string2 , 10 );
   if( result > 0 )
      _mbscpy( tmp, "greater than" );
   else if( result < 0 )
      _mbscpy( tmp, "less than" );
   else
      _mbscpy( tmp, "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
   printf( "Function: _mbsnicmp _mbsnicmp (first 10 characters only)\n" );
   result = _mbsnicmp( string1, string2, 10 );
   if( result > 0 )
      _mbscpy( tmp, "greater than" );
   else if( result < 0 )
      _mbscpy( tmp, "less than" );
   else
      _mbscpy( tmp, "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
}

Output

Compare strings:
          The quick brown dog jumps over the lazy fox
          The QUICK brown fox jumps over the lazy dog

Function: _mbsnbcmp (first 10 characters only)
Result:   String 1 is greater than string 2

Function: _mbsnicmp _mbsnicmp (first 10 characters only)
Result:   String 1 is equal to string 2

See Also

String Manipulation Routines | _mbsnbcat | _mbsnbicmp | strncmp | _strnicmp | Run-Time Routines and .NET Framework Equivalents

Show:
© 2016 Microsoft