【C言語】メモリを比較するmemcmp関数の使い方を詳しく解説

目次から探す

memcmp関数の概要

memcmp関数は、C言語の標準ライブラリ関数の一つであり、2つのメモリ領域を比較するために使用されます。

この関数は、指定された2つのメモリ領域の内容をバイト単位で比較し、その結果を返します。

memcmp関数のプロトタイプは以下の通りです。


int memcmp(const void* ptr1, const void* ptr2, size_t num);
引数名説明
ptr1比較する最初のメモリ領域へのポインタ
ptr2比較する2番目のメモリ領域へのポインタ
num比較するバイト数

memcmp関数は、2つのメモリ領域の内容をバイト単位で比較し、以下の結果を返します。

戻り値説明
02つのメモリ領域が等しい
負の値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関数は、ptr1ptr2が指すメモリ領域の最初のnumバイトを比較します。

比較結果は以下のように返されます。

戻り値説明
負の整数ptr1がptr2よりも小さい場合
0ptr1が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関数を使用してstr1str2str1str3を比較しています。

sizeof演算子を使用して、str1のサイズを指定しています。

result1result2には、memcmp関数の結果が格納されます。

最後に、結果に応じて適切なメッセージが表示されます。

実行結果は以下のようになります。

str1とstr2は同じです
str1とstr3は異なります

以上が、memcmp関数の基本的な使い方です。

2つのメモリ領域を比較する際には、この関数を活用してください。

1 2

この記事のページ一覧
  1. 現在のページ
目次から探す