C++ Reference: Standard C++ Library reference: C Library: cstring: memchr

发布于:2022-10-29 ⋅ 阅读:(448) ⋅ 点赞:(0)

C++官网参考链接:https://cplusplus.com/reference/cstring/memchr/

函数
<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),并返回指向该值的指针。
value和ptr数组上检查的每个字节都被解释为unsigned char进行比较。

形参 
ptr
指向执行查找的内存块的指针。
value 
要定位的值。该值作为int传递,但该函数使用该值的unsigned char转换执行逐字节查找。
num 
要分析的字节数。
size_t是无符号整型。

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

可移植性
在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;
}
输出: 

另请参考
memcmp    Compare two blocks of memory (function)
strchr    Locate first occurrence of character in string (function)
strrchr    Locate last occurrence of character in string (function)