• [字符串和内存函数]strcmp和strncmp以及memcmp的区别


    CPlus中对strcmp的介绍 

    1. #include
    2. #include
    3. int main ()
    4. {
    5. char key[] = "apple";
    6. char buffer[80];
    7. do {
    8. printf ("Guess my favorite fruit? ");
    9. fflush (stdout);
    10. scanf ("%79s",buffer);
    11. } while (strcmp (key,buffer) != 0);
    12. puts ("Correct answer!");
    13. return 0;
    14. }

     

     CPlus中对strncmp的介绍

    1. /* strncmp example */
    2. #include
    3. #include
    4. int main ()
    5. {
    6. char str[][5] = { "R2D2" , "C3PO" , "R2A6" };
    7. int n;
    8. puts ("Looking for R2 astromech droids...");
    9. for (n=0 ; n<3 ; n++)
    10. if (strncmp (str[n],"R2xx",2) == 0)
    11. {
    12. printf ("found %s\n",str[n]);
    13. }
    14. return 0;
    15. }

     

     CPlus中对memcmp的介绍 

     

    1. /* memcmp example */
    2. #include
    3. #include
    4. int main ()
    5. {
    6. char buffer1[] = "DWgaOtP12df0";
    7. char buffer2[] = "DWGAOTP12DF0";
    8. int n;
    9. n=memcmp ( buffer1, buffer2, sizeof(buffer1) );
    10. if (n>0) printf ("'%s' is greater than '%s'.\n",buffer1,buffer2);
    11. else if (n<0) printf ("'%s' is less than '%s'.\n",buffer1,buffer2);
    12. else printf ("'%s' is the same as '%s'.\n",buffer1,buffer2);
    13. return 0;
    14. }

     

    区别

    strcmp和strncmp的比较

    strcmp和strncmp都是C语言中用于比较两个字符串的函数,它们的区别在于比较的方式长度限制

    strcmp函数用于比较两个字符串,它会逐个比较两个字符串中对应位置上的字符,直到遇到不相等的字符或者到达字符串结束符’\0’。

    如果两个字符串相等,返回值为0;

    如果第一个字符串大于第二个字符串,返回值大于0;

    如果第一个字符串小于第二个字符串,返回值小于0。

    strncmp函数也用于比较两个字符串,但它额外需要一个参数来指定要比较的字符个数。它会比较两个字符串中前n个字符,其中n为第三个参数所指定的字符个数。

    如果前n个字符都相等,则返回值为0;

    否则,返回值遵循和strcmp相同的规则。

    strcmp和memcmp的比较

    memcmp和strcmp是C语言中用于比较字符串或者字节序列的函数,它们有一些区别。

    memcmp函数用于比较两个内存区域的内容。这个函数通过比较两个内存区域的字节进行操作,并返回一个整数值来表示比较结果。

    如果返回值小于0,表示第一个内存区域小于第二个;

    如果返回值大于0,表示第一个内存区域大于第二个;

    如果返回值等于0,表示两个内存区域相等。

    memcmp函数比较的是字节序列,不仅可以用来比较字符串,也可以用来比较其他类型的数据。

    strncmp是strcmp的一种变体函数,它除了比较两个字符串的内容外,还可以指定比较的长度。它接受三个参数,分别是要比较的两个字符串和要比较的长度。

    strcmp函数用于比较两个字符串的内容。这个函数通过比较两个字符串中对应位置的字符进行操作,并返回一个整数值来表示比较结果。

    如果返回值小于0,表示第一个字符串小于第二个;

    如果返回值大于0,表示第一个字符串大于第二个;

    如果返回值等于0,表示两个字符串相等。strcmp函数只能用来比较字符串。

    所以,区别在于memcmp函数可以比较字节序列,而strcmp函数只能比较字符串。此外,对于包含空字符的字符串,strcmp函数在遇到空字符时会停止比较,而memcmp函数则会继续比较。

  • 相关阅读:
    【Python】定义函数求解一元二次方程
    k8s存储:卷、持久卷、存储类
    iptables学习
    向上转型和向下转型
    vscode ssh远程连接服务器,一直正在下载vscode服务器的解决办法
    什么是时间冒泡?
    netty系列之:可以自动通知执行结果的Future,有见过吗?
    计算机毕业设计Java京津冀畅游网设计(源码+系统+mysql数据库+lw文档)
    排序算法之选择排序
    Python 3.14 将比 C++ 更快
  • 原文地址:https://blog.csdn.net/caojunjia/article/details/132940440