Last Update 2012/07/05
バイト文字列中で指定したバイト文字を探します。
戻り値1 = memchr( 引数1 , 引数2 , 引数3 )
戻り値1 :
void *
指定バイト文字が見つかる
最初に見つかったバイト文字の位置へのポインタ
指定バイト文字が見つからない
NULL
引数1 :
void *
文字を検索する対象となるバイト文字列
引数2 :
int
検索するバイト文字
引数3 :
size_t
0文字目からの検索範囲を示す数値
(例)
#include <stdio.h>
#include <string.h>
struct struct_test
{
char str1[10];
char str2[20];
};
int main()
{
struct struct_test st = {"abcde", "123456"};
char *ret = memchr(&st, 'a', (size_t)sizeof(st));
printf("構造体サイズ : %d\n", (int)sizeof(st));
printf("'a'出現位置 %ld\n", (long)ret - (long)&st);
ret = memchr(&st, 'b', (size_t)sizeof(st));
printf("'b'出現位置 %ld\n", (long)ret - (long)&st);
ret = memchr(&st, '\0', (size_t)sizeof(st));
printf("'\\0'出現位置 %ld\n", (long)ret - (long)&st);
ret = memchr(&st, '1', (size_t)sizeof(st));
printf("'1'出現位置 %ld\n", (long)ret - (long)&st);
return 0;
}
実行結果
構造体サイズ : 30
'a'出現位置 0
'b'出現位置 1
'\0'出現位置 5
'1'出現位置 10