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