函式
<cstring>

memchr

const void * memchr ( const void * ptr, int value, size_t num );      void * memchr (       void * ptr, int value, size_t num );
在記憶體塊中定位字元
ptr 所指向的記憶體塊的前 num 個位元組中搜索第一次出現的 value(解釋為unsigned char),並返回一個指向它的指標。

valueptr 陣列中被檢查的每個位元組在比較時都被解釋為unsigned char

引數

ptr
指向要執行搜尋的記憶體塊的指標。
要定位的值。該值以int型別傳遞,但函式使用此值的 unsigned char 轉換形式進行逐位元組搜尋。
num
要分析的位元組數。
size_t 是一個無符號整數型別。

返回值

一個指向在 ptr 所指向的記憶體塊中第一次出現的 value 的指標。
如果未找到 value,則該函式返回一個空指標。

可移植性

在 C 語言中,此函式僅宣告為

void * memchr ( const void *, int, size_t );

而不是 C++ 中提供的兩個過載版本。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* memchr example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char * pch;
  char str[] = "Example string";
  pch = (char*) memchr (str, 'p', strlen(str));
  if (pch!=NULL)
    printf ("'p' found at position %d.\n", pch-str+1);
  else
    printf ("'p' not found.\n");
  return 0;
}

輸出

'p' found at position 5.


另見