C 字串 memcmp() 函式
示例
比較兩個記憶體塊以確定哪個更大
char myStr1[] = "ABCD";
char myStr2[] = "ABCE";
int cmp = memcmp(myStr1, myStr2, 4);
if (cmp > 0) {
printf("%s is greater than %s\n", myStr1, myStr2);
} else if (cmp < 0) {
printf("%s is greater than %s\n", myStr2, myStr1);
} else {
printf("%s is equal to %s\n", myStr1, myStr2);
}
自己動手試一試 »
定義和用法
memcmp()
函式比較兩個記憶體塊,並返回一個表示哪個記憶體塊更大的整數。
對於此比較,兩個記憶體塊中相同位置的位元組將逐個比較,從位置 0 開始,直到其中一個不匹配或已到達記憶體塊的末尾。有三種可能的情況:
- 如果在到達記憶體塊末尾時沒有發生不匹配,則函式返回零。
- 在第一次不匹配時,如果第一個記憶體塊中的位元組值更大,則函式返回一個正數。
- 在第一次不匹配時,如果第二個記憶體塊中的位元組值更大,則函式返回一個負數。
memcmp()
函式定義在 <string.h>
標頭檔案中。
語法
memcmp(void * pointer1, void * pointer2, size_t size);
size_t
資料型別是一個正整數。
引數值
引數 | 描述 |
---|---|
pointer1 | 必需。指向要比較的記憶體塊之一的指標。 |
pointer2 | 必需。指向要比較的記憶體塊之一的指標。 |
大小 | 必需。要比較的位元組數。 |
技術詳情
返回 | 一個 int 值,如果第一個記憶體塊更大則為正數,如果第二個記憶體塊更大則為負數,如果兩個記憶體塊相等則為 0。 |
---|