Loose-Info.com

Last Update 2019/12/24


TOP - C言語 - string.h - memcmp()

バイト文字列を比較します。

 戻り値1  = memcmp(  引数1  ,  引数2  ,  引数3  )

戻り値1 :
int
引数1と引数2が同じ : 0
引数1と引数2が異なる場合は異なる最初のバイトの比較結果により次の結果となる
引数1 > 引数2 : 正の値
引数1 < 引数1 : 負の値
引数1 :
void *
比較対象となるバイト文字列
引数2 :
void *
比較対象となるバイト文字列
引数3 :
size_t
比較対象となるバイト文字数

(例)
#include <stdio.h> #include <string.h> struct struct_test { char str1[10]; char str2[20]; }; int main () { struct struct_test st1 = {"abcde", "123456"}; struct struct_test st2 = {"abcde", "123456"}; struct struct_test st3 = {"abcde", "123356"}; struct struct_test st4 = {"cccde", "fghijk"}; printf("比較 \"11\" \"22\" : %d\n", memcmp("11", "22", 2)); printf("比較 \"cc\" \"aa\" : %d\n", memcmp("cc", "aa", 2)); printf("比較 st1 st2 : %d\n", memcmp(&st1, &st2, (size_t)sizeof(st1))); printf("比較 st1 st3 : %d\n", memcmp(&st1, &st3, (size_t)sizeof(st1))); printf("比較 st1 st3 5バイト : %d\n", memcmp(&st1, &st3, 5)); printf("比較 st1 st4 : %d\n", memcmp(&st1, &st4, (size_t)sizeof(st1))); return 0; }

実行結果
比較 "11" "22" : -1 比較 "cc" "aa" : 1 比較 st1 st2 : 0 比較 st1 st3 : 1 比較 st1 st3 5バイト : 0 比較 st1 st4 : -2