函数
<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.


另见