memchr

文字を n バイト中から検索する

【書式】
#include <string.h>
void *memchr(const void *buf, int ch, size_t n);

【説明】
buf の先頭から n 文字分検索して、文字 ch がある位置を返却します。
buf を単なるメモリブロックとして検索するため、途中に空文字('\0')を含んでいても検索を続けます。

【引数】
const void *buf : 検索対象のメモリブロック
int ch : 検索文字
size_t n : 検索バイト数

【戻り値】
成功時  : 文字へのポインタ
エラー時 : NULL

(参考)
mem系の関数は、文字列というよりメモリブロックを処理対象にしています。そのため、あらゆる型での処理が可能になります。ですから、戻り値や引数も汎用ポインタ型である「void *」を用います。

【使用例】
#include        <stdio.h>
#include        <string.h>

int main(void)
{
        char str[] = "abcdef\0ghij";    /* 途中に空文字のある文字列 */
        char *p;
        
        p = memchr(str, 'h', 12);
        printf("検索文字は文字列の%d番目\n",p - str);
        
        return 0;
}
        
【実行結果】
検索文字は文字列の8番目

戻る


banner
初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved