memchr() — バッファーを検索する

形式

#include <string.h>
void *memchr(const void *buf, int c, size_t count);

言語レベル

ANSI

スレッド・セーフ

はい

説明

memchr() 関数は、符号なし文字に変換された c の最初のオカレンスについて、 buf の最初の count バイトを検索します。 検索は、この関数が c を検出するか、count バイトを検査するまで続きます。

戻り値

memchr() 関数は、 buf内の c の位置を指すポインターを戻します。 cbufの最初の count バイト内にない場合は、 NULL を戻します。

この例では、指定したストリング内で、最初のオカレンス “x” を見つけます。 見つかった場合は、その文字で始まるストリングが出力されます。
#include <stdio.h>
#include <string.h>
 
int main(int argc, char ** argv)
{
  char * result;
 
  if ( argc != 2 )
    printf( "Usage: %s string\n", argv[0] );
  else
  {
    if ((result = (char *) memchr( argv[1], 'x', strlen(argv[1])) ) != NULL)
      printf( "The string starting with x is %s\n", result );
    else
      printf( "The letter x cannot be found in the string\n" );
  }
}
 
/********************  Output should be similar to:  **************
 
The string starting with x is xing
*/

関連情報