Loose-Info.com

Last Update 2019/12/24


TOP - C言語 - string.h - memchr()

バイト文字列中で指定したバイト文字を探します。

 戻り値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