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
コメント