memchr

< c‎ | string‎ | byte
定义于头文件 <string.h>
void* memchr( const void* ptr, int ch, size_t count );

ptr 所指向对象的首 count 个字符(每个都转译成 unsigned char )中寻找 ch (在如同以 (unsigned char)ch 转换到 unsigned char 后)的首次出现。

若访问出现于被搜索的数组结尾后,则行为未定义。若 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

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.24.5.1 The memchr function (p: 367)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.21.5.1 The memchr function (p: 330)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.11.5.1 The memchr function

参阅

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