Syntax
#include <wchar.h> int wcsncmp(const wchar_t *string1, const wchar_t *string2, size_t count);Description
wcsncmp compares up to count wide characters in string1 to string2.
wcsncmp operates on null-terminated wide-character strings; string arguments to this function should contain a wchar_t null character marking the end of the string.
wcsncmp returns a value indicating the relationship between the two strings, as follows: compact break=fit.
Value
This example demonstrates the difference between wcscmp, which compares the entire strings, and wcsncmp, which compares only a specified number of wide characters in the strings.
#include <stdio.h>#include <wchar.h>
#define  SIZE          10
int main(void)
{
   int result;
   int index = 3;
   wchar_t buffer1[SIZE] = L"abcdefg";
   wchar_t buffer2[SIZE] = L"abcfg";
   void print_result(int, wchar_t *, wchar_t *);
   result = wcscmp(buffer1, buffer2);
   printf("Comparison of each character\n");
   printf("  wcscmp: ");
   print_result(result, buffer1, buffer2);
   result = wcsncmp(buffer1, buffer2, index);
   printf("\nComparison of only the first %i characters\n", index);
   printf("  wcsncmp: ");
   print_result(result, buffer1, buffer2);
   return 0;
   /****************************************************************************
      The output should be:
      Comparison of each character
        wcscmp: "abcdefg" is less than "abcfg"
      Comparison of only the first 3 characters
        wcsncmp: "abcdefg" is identical to "abcfg"
   ****************************************************************************/
}
void print_result(int res,wchar_t *p_buffer1,wchar_t *p_buffer2)
{
   if (0 == res)
      printf("\"%ls\" is identical to \"%ls\"\n", p_buffer1, p_buffer2);
   else
      if (res < 0)
         printf("\"%ls\" is less than \"%ls\"\n", p_buffer1, p_buffer2);
      else
         printf("\"%ls\" is greater than \"%ls\"\n", p_buffer1, p_buffer2);
}
Related Information