memcmp

来源:互联网 发布:淘宝店海报怎么做 编辑:程序博客网 时间:2024/05/17 18:12
头文件:#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 的值。

范例
复制纯文本新窗口
  1. #include <string.h>
  2. main(){
  3. char *a = "aBcDeF";
  4. char *b = "AbCdEf";
  5. char *c = "aacdef";
  6. char *d = "aBcDeF";
  7. printf("memcmp(a, b):%d\n", memcmp((void*)a, (void*)b, 6));
  8. printf("memcmp(a, c):%d\n", memcmp((void*)a, (void*)c, 6));
  9. printf("memcmp(a, d):%d\n", memcmp((void*)a, (void*)d, 6));
  10. }
#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
0 0