函数
<cwchar>

wmemcmp

int wmemcmp (const wchar_t* ptr1, const wchar_t* ptr2, size_t num);
比较两个宽字符块
比较 ptr1 指向的内存块的前 num 个宽字符与 ptr2 指向的前 num 个宽字符。如果它们全部匹配,则返回零;如果不匹配,则返回一个不同于零的值,表示哪个更大。

注意,与 wcscmp 不同,该函数在找到空宽字符后不会停止比较。

这是 memcmp (<cstring>) 的宽字符等价版本。

参数

ptr1
指向 wchar_t 类型元素块的指针。wchar_t.
ptr2
指向 wchar_t 类型元素块的指针。wchar_t.
num
要比较的 wchar_t 类型元素的数量。wchar_t待比较。

返回值

返回一个整数值,指示块内容之间的关系。
零值表示两个内存块的内容相等。
大于零的值表示两个内存块中第一个不匹配的宽字符在 ptr1 中的值大于在 ptr2 中的值;小于零的值则表示相反情况。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* wmemcmp example */
#include <wchar.h>

int main ()
{
  int a,b;
  wchar_t wcs1[20] = L"content by default.";
  wchar_t wcs2[20] = L"-------------------";

  wcscpy ( wcs1, L"test string" );
  wcscpy ( wcs2, L"test string" );

  a = wcsncmp ( wcs1, wcs2, 20 );  /* compares 12 characters (until L'\0') */
  b = wmemcmp ( wcs1, wcs2, 20 );  /* compares 20 characters */

  wprintf (L"wcsncmp comparison: %ls\n",a?L"not equal":L"equal");
  wprintf (L"wmemcmp comparison: %ls\n",b?L"not equal":L"equal");

  return 0;
}

输出

wcsncmp comparison: equal
wmemcmp comparison: not equal


另见