C言語 memcmp関数の使い方

C logo C

memcmp関数を使用して、メモリブロックを比較する方法について解説します。

構文

#include <string.h>
int memcmp(const void *addr1, const void *addr2, size_t n);
第1引数 - addr1: 比較先の先頭アドレス
第2引数 - addr2: 比較元の先頭アドレス
第3引数 - n: 比較するサイズ
戻り値 - addr1 < addr2の場合: 負の整数
             addr1 = addr2の場合: 0
             addr1 > addr2の場合: 正の整数

サンプルプログラム

#include <stdio.h>
#include <string.h>

int main(void)
{
    char str1[] = "Yamada Taro";
    char str2[] = "Yamada Hanako";

    printf("7文字目まで比較した場合: %d\n", memcmp(&str1[0], &str2[0], (size_t)7));
    printf("8文字目まで比較した場合: %d\n", memcmp(&str1[0], &str2[0], (size_t)8));

    return 0;
}

■出力結果
7文字目まで比較した場合: 0
8文字目まで比較した場合: 12

コメント

タイトルとURLをコピーしました