名前空間
変種
操作

memchr

提供: cppreference.com
< 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 より小さいけれども、配列内に一致が見つかる場合、動作は well-defined です。

(C11およびそれ以降)

目次

[編集] 引数

ptr - 調べるオブジェクトを指すポインタ
ch - 検索する文字
count - 調べる最大文字数

[編集] 戻り値

文字の位置を指すポインタ、またはそのような文字が見つからない場合は NULL

[編集]

#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

[編集] 関連項目

文字が現れる最初の位置を探します
(関数) [edit]