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


Copyright(C) 2006-2012 CLAYPOT. All Rights Reserved.