函式
<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


另見