zoukankan      html  css  js  c++  java
  • strcmp函数和memcmp函数的用法区别及联系

     前言:

     C语言中有很多东西容易搞混,最近笔者就遇到了一个问题。这里做个记录。就是memcmp和strcmp两者的用法,这里做个对比:

     功能对比:

     A memcmp:

        函数原型: int memcmp(const void *str1, const void *str2, size_t n));

     功能:比较内存区域buf1和buf2的前count个字节。

     返回值:

    • 如果返回值 < 0,则表示 str1 小于 str2。
    • 如果返回值 > 0,则表示 str2 小于 str1。
    • 如果返回值 = 0,则表示 str1 等于 str2。

     B strcmp函数  

     函数原型:int strcmp(const char *s1,const char *s2);

     功能:用于比较两个字符串并根据比较结果返回整数

     返回值:

    • 如果返回值 < 0,则表示 str1 小于 str2。
    • 如果返回值 > 0,则表示 str2 小于 str1。
    • 如果返回值 = 0,则表示 str1 等于 str2。

     源码对比:

      下面这个例子,能够很好的诠释两个函数的用法:

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 
     5 int main()
     6 {
     7         unsigned char test1_arr[32] = "hello world";
     8         unsigned char test2_arr[32] = "hello world";
     9 
    10         int ret = memcmp(test1_arr,test2_arr,strlen(test1_arr));
    11         printf("unsigned char memcmp is:%d 
    	 ",ret);
    12 
    13         char test3_arr[32] = "hello world";
    14         char test4_arr[32] = "hello world";
    15 
    16         int reta = strcmp(test3_arr,test4_arr);
    17         printf("char strcmp is:%d 
    	 ",reta);
    18 
    19         unsigned char test5_arr[32] = "hello world";
    20         unsigned char test6_arr[32] = "hello world";
    21 
    22         int retb = strcmp(test5_arr,test6_arr);
    23         printf("char strcmp is:%d 
    	 ",retb);
    24 
    25         return 0;
    26 }
  • 相关阅读:
    写日志
    读写excel
    python安装模块
    数据库
    日志和关键字查找
    时间戳
    os 模块
    图-最小生成树算法之Kruskal及其Java实现
    图-图的表示、搜索算法及其Java实现
    前端实现list排序
  • 原文地址:https://www.cnblogs.com/dylancao/p/11881694.html
Copyright © 2011-2022 走看看