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
#include
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;
}
输出: