Export (0) Print
Expand All
Expand Minimize
This topic has not yet been rated - Rate this topic

_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

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.