memchr

来自cppreference.com
< c‎ | string‎ | byte
在标头 <string.h> 定义
void* memchr( const void* ptr, int ch, size_t count );

ptr 所指向对象的起始 count 个字节(均转译成 unsigned char )中寻找首次出现的 (unsigned char)ch

若访问出现于被搜索的数组结尾后,则行为未定义。若 ptr 为空指针则行为未定义。

此函数表现如同它按顺序读取字节,并立即于找到匹配的字节时停止:若 ptr 所指向的字节数组小于 count ,但在数组中找到匹配,则行为良定义。

(C11 起)

参数

ptr - 指向要检验的对象的指针
ch - 要搜索的字节
count - 要检验的最大字节数

返回值

指向字节位置的指针,或若找不到该字节则为空指针。

示例

#include <stdio.h>
#include <string.h>
 
int main(void)
{
    char str[] = "ABCDEFG";
    char *ps = memchr(str,'D',strlen(str));
    if (ps != NULL)
       printf ("search character found:  %s\n", ps);
    else
       printf ("search character not found\n");
 
    return 0;
}

输出:

search character found:  DEFG

引用

  • C17 标准(ISO/IEC 9899:2018):
  • 7.24.5.1 The memchr function (第 267-268 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.24.5.1 The memchr function (第 367 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.21.5.1 The memchr function (第 330 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.11.5.1 The memchr function

参阅

查找字符的首次出现
(函数)