🔧 文字列 ・ string.h ・ C89
memcmp の使い方int memcmp(const void *s1, const void *s2, size_t n);
メモリ領域を指定バイト数だけバイト単位で比較する。構造体や配列全体が等しいかどうかを一括で調べたい時に使われる、文字列以外にも使える汎用比較関数。 バイナリファイルの一致確認やハッシュ値の比較など、内容そのものの一致を厳密に調べたい時に使う。
#include <string.h>
#include <stdio.h>
int main(void) {
int a[3] = {1, 2, 3};
int b[3] = {1, 2, 3};
if (memcmp(a, b, sizeof a) == 0) puts("same");
return 0;
}
⚠️ 構造体をmemcmpで比較すると、パディング領域の不定値の違いで意図せず不一致になることがある。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
memcmp と一緒に使う関数memcpy
memmove
memset
memset_explicit
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
strerror
strlen
strncat
strncmp
strncpy
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。