memcmp函數的介紹
- 頭文件:#include <string.h>
- 定義函數:int memcmp (const void *s1, const void *s2, size_t n);
- 函數說明:memcmp()用來比較s1 和s2 所指的內存區間前n 個字符。
- 字符串大小的比較是以ASCII 碼表上的順序來決定,次順序亦為字符的值。memcmp()首先將s1 第一個字符值減去s2 第一個字符的值,若差為0 則再繼續比較下個字符,若差值不為0 則將差值返回。例如,字符串"Ac"和"ba"比較則會返回字符'A'(65)和'b'(98)的差值(-33)。
- 返回值:若參數s1 和s2 所指的內存內容都完全相同則返回0 值。s1 若大于s2 則返回大于0 的值。s1 若小于s2 則返回小于0 的值。
代碼范例
#include <string.h>
main(){char *a = "aBcDeF";char *b = "AbCdEf";char *c = "aacdef";char *d = "aBcDeF";printf("memcmp(a, b):%d\n", memcmp((void*)a, (void*)b, 6));printf("memcmp(a, c):%d\n", memcmp((void*)a, (void*)c, 6));printf("memcmp(a, d):%d\n", memcmp((void*)a, (void*)d, 6));
}
執行結果判定
- memcmp(a, b):1 //字符串a>字符串b, 返回1
- memcmp(a, c):-1 // 字符串a<字符串c, 返回-1
- memcmp(a, d):0 //字符串a=字符串d, 返回0