📜  C / C++中的strcmp()

📅  最后修改于: 2021-05-26 01:43:41             🧑  作者: Mango

strcmp()是一个内置库函数,并在< 字符串.h>头文件中声明。此函数将两个字符串作为参数,然后按字典顺序比较这两个字符串。

语法::

int strcmp(const char *leftStr, const char *rightStr );

在上述原型中,函数srtcmp将两个字符串作为参数,并根据字符串的比较返回一个整数值。

  • 的strcmp()的两个字符串字典顺序比较意味着它由字符从第一个字符开始,直到在两个字符串的字符是等于或遇到NULL字符开始比较字符。
  • 如果两个字符串中的第一个字符相等,则此函数将检查第二个字符,如果也相等,则将检查第三个字符,依此类推
  • 这一过程将继续,直到字符串中的字符为NULL或字符是不平等的。

strcmp()返回什么?

该函数可以根据比较结果返回三个不同的整数值

  1. 零(0) :当发现两个字符串相同时,该值等于零。即,也就是说,两个字符串中的所有字符都相同。
    All characters of strings are same
    // C program to illustrate
    // strcmp() function
    #include
    #include
      
    int main()
    { 
          
        char leftStr[] = "g f g";
        char rightStr[] = "g f g";
          
        // Using strcmp()
        int res = strcmp(leftStr, rightStr);
          
        if (res==0)
            printf("Strings are equal");
        else 
            printf("Strings are unequal");
          
        printf("\nValue returned by strcmp() is:  %d" , res);
        return 0;
    }
    

    输出:

    Strings are equal
    Value returned by strcmp() is:  0
    
  2. 大于零(> 0) :当leftStr中第一个不匹配的字符的ASCII值大于rightStr中相应字符的ASCII值时,返回大于零的值,或者我们也可以说
    If character in leftStr is lexicographically
    after the character of rightStr 
    // C program to illustrate
    // strcmp() function
    #include
    #include
    int main()
    { 
        // z has greater ASCII value than g
        char leftStr[] = "zfz";
        char rightStr[] = "gfg";
          
        int res = strcmp(leftStr, rightStr);
          
        if (res==0)
            printf("Strings are equal");
        else 
            printf("Strings are unequal");
              
        printf("\nValue of result: %d" , res);
          
        return 0;
    }
    

    输出:

    Strings are unequal
    Value returned by strcmp() is:  19
    
  3. 小于零(<0) :当leftStr中的第一个不匹配字符的ASCII值小于rightStr中的相应字符时,返回小于零的值。
    If character in leftStr is lexicographically
    before the character of rightStr
    // C program to illustrate
    // strcmp() function
    #include
    #include
    int main()
    { 
        // b has less ASCII value than g
        char leftStr[] = "bfb";
        char rightStr[] = "gfg";
          
        int res = strcmp(leftStr, rightStr);
          
        if (res==0)
            printf("Strings are equal");
        else 
            printf("Strings are unequal");
              
        printf("\nValue returned by strcmp() is:  %d" , res);
          
          
        return 0;
    }
    

    输出:

    Strings are unequal
    Value returned by strcmp() is:  -5
    
    想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。