>> C言語関数一覧トップに戻る
今回は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が返れば一致、返らなければ一致していないことになります。
■サンプルコード
先頭から3バイトは一致しています。
上記コードでは二つの文字列をmemcmpで3バイトだけ比較しています。
先頭から3バイトは一致しているので、一致しているというメッセージが表示されます。
>> 【C言語 memcpy 使い方】に進む
>> C言語関数一覧トップに戻る
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言語関数一覧トップに戻る