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