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番目
「初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved