>> C言語関数一覧トップに戻る

C言語 memcmp 使い方

今回はC言語のmemcmp関数の使い方について説明します。

memcmp関数は指定バイト数のメモリブロックを比較する関数です。

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

第一引数、第二引数は比較対象メモリのポインタ
第三引数は比較サイズ

をそれぞれ指定します。
比較はunsigned charとして行われます。
戻り値は以下のようになります。

正の値 : buf1 > buf2
0    : buf1 = buf2
負の値 : buf1 < buf2

つまり、0が返れば一致、返らなければ一致していないことになります。
■サンプルコード
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
	char buf[] = "ABCD5EFGH";
	char buf2[] = "ABC123456";

	if(memcmp(buf,buf2,3)==0){
		puts("先頭から3バイトは一致しています。");
	}else{
		puts("一致していません。");
	}

	return 0;
}
■実行結果
先頭から3バイトは一致しています。



上記コードでは二つの文字列をmemcmpで3バイトだけ比較しています。
先頭から3バイトは一致しているので、一致しているというメッセージが表示されます。
>> 【C言語 memcpy 使い方】に進む
>> C言語関数一覧トップに戻る