memcmp

n バイトメモリブロックの比較

【書式】
#include <string.h>
int memcmp(const void *buf1, const void *buf2,size_t n);

※ void * についてはこちらを参考

【説明】
buf1 と buf2 を先頭から n バイト分比較します。比較はunsigned char として行われます。memcmp() は buf1 と buf2 をメモリブロックとして扱うため、途中に空文字('\0')を含んでいても比較を続けます。

【引数】
const void *buf1 : 比較元メモリブロック1
const void *buf2 : 比較元メモリブロック2
size_t n : 比較バイト数

【戻り値】
正 : buf1 > buf2
0  : buf1 = buf2
負 : buf1 < buf2

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

int main(void)
{
        char buf1[] = "\0abc\0de";      /* 途中に空文字のある文字列 */
        char buf2[] = "\0abc\0de";
        char buf3[] = "\0abcdef";
        
        if (memcmp(buf1, buf2, 7) == 0)
                printf("buf1 = buf2\n");
        else
                printf("buf1 != buf2\n");

        if (memcmp(buf1, buf3, 7) == 0)
                printf("buf1 = buf3\n");
        else
                printf("buf1 != buf3\n");

        return 0;
}
【実行結果】
buf1 = buf2
buf1 != buf3

※ 途中に空文字があっても比較できる。

戻る


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