Home C&C++函数库 c++ 语法 程序源码 Linux C库

memchr

函数   <cstring>

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),并返回指向它的指针。

为了进行比较,value和ptr数组中检索的每个字节都被解释为unsigned char。

☲  参数


ptr
指向执行搜索的内存块的指针。

value
要定位的值。该值以int形式传递,但该函数使用该值的unsigned char转换执行逐个字节的搜索。

num
要分析的字节数。
size_t是一个无符号整型。

☉  返回值



一个指针,指向ptr所指向的内存块中第一个出现的值。
如果未找到该值,函数将返回一个空指针。

❆  可移植性



在C语言中,这个函数只声明为:

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

而不是c++中提供的两个重载版本。

☣  示例



/* 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.

🍄  另请参阅



strchr 定位字符串中第一个出现的字符(function )
memcmp 比较两个内存块(function )
strrchr 查找字符串中最后出现的字符(function )

联系我们 免责声明 关于CandCplus 网站地图