目次から探す
memcmp関数の概要
memcmp関数
は、C言語の標準ライブラリ関数の一つであり、2つのメモリ領域を比較するために使用されます。
この関数は、指定された2つのメモリ領域の内容をバイト単位で比較し、その結果を返します。
memcmp関数
のプロトタイプは以下の通りです。
int memcmp(const void* ptr1, const void* ptr2, size_t num);
引数名 | 説明 |
---|---|
ptr1 | 比較する最初のメモリ領域へのポインタ |
ptr2 | 比較する2番目のメモリ領域へのポインタ |
num | 比較するバイト数 |
memcmp関数
は、2つのメモリ領域の内容をバイト単位で比較し、以下の結果を返します。
戻り値 | 説明 |
---|---|
0 | 2つのメモリ領域が等しい |
負の値 | ptr1の内容がptr2の内容よりも小さい |
正の値 | ptr1の内容がptr2の内容よりも大きい |
memcmp関数
は、主に文字列や配列などのデータを比較する際に使用されます。
memcmp関数の使い方
memcmp
関数は、C言語の標準ライブラリ関数の一つであり、2つのメモリ領域を比較するために使用されます。
この関数は、指定された2つのメモリ領域の内容をバイト単位で比較し、その結果を返します。
memcmp
関数の基本的な構文は以下の通りです。
int memcmp(const void* ptr1, const void* ptr2, size_t num);
引数名 | 説明 |
---|---|
ptr1 | 比較する最初のメモリ領域へのポインタ |
ptr2 | 比較する2番目のメモリ領域へのポインタ |
num | 比較するバイト数 |
memcmp
関数は、ptr1
とptr2
が指すメモリ領域の最初のnum
バイトを比較します。
比較結果は以下のように返されます。
戻り値 | 説明 |
---|---|
負の整数 | ptr1がptr2よりも小さい場合 |
0 | ptr1がptr2と等しい場合 |
正の整数 | ptr1がptr2よりも大きい場合 |
以下に、memcmp
関数の使用例を示します。
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "World";
int result1 = memcmp(str1, str2, sizeof(str1));
int result2 = memcmp(str1, str3, sizeof(str1));
if (result1 == 0) {
printf("str1とstr2は同じです\n");
} else {
printf("str1とstr2は異なります\n");
}
if (result2 == 0) {
printf("str1とstr3は同じです\n");
} else {
printf("str1とstr3は異なります\n");
}
return 0;
}
上記のコードでは、memcmp
関数を使用してstr1
とstr2
、str1
とstr3
を比較しています。
sizeof
演算子を使用して、str1
のサイズを指定しています。
result1
とresult2
には、memcmp
関数の結果が格納されます。
最後に、結果に応じて適切なメッセージが表示されます。
実行結果は以下のようになります。
str1とstr2は同じです
str1とstr3は異なります
以上が、memcmp
関数の基本的な使い方です。
2つのメモリ領域を比較する際には、この関数を活用してください。
次のページmemcpy関数を使用する注意点