当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ strcmp()用法及代码示例


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

用法:

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

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


  • strcmp()从字法上比较两个字符串,这意味着它从第一个字符开始逐个字符开始比较,直到两个字符串中的字符相等或遇到NULL为止。
  • 如果两个字符串中的第一个字符相等,则此函数将检查第二个字符,如果也相等,则将检查第三个字符,依此类推
  • 该过程将继续进行,直到任一字符串中的字符为NULL或字符不相等为止。

What does strcmp() return?

该函数可以基于比较返回三个不同的整数值:

  1. 零(0):当发现两个字符串相同时,该值等于零。也就是说,两个字符串中的所有字符都相同。
    All characters of strings are same
    // C program to illustrate 
    // strcmp() function 
    #include<stdio.h> 
    #include<string.h> 
      
    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<stdio.h> 
    #include<string.h> 
    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. 小于零(:当leftStr中的第一个不匹配字符的ASCII值小于rightStr中的相应字符时,返回小于零的值。
    If character in leftStr is lexicographically
    before the character of rightStr
    // C program to illustrate 
    // strcmp() function 
    #include<stdio.h> 
    #include<string.h> 
    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
    


相关用法


注:本文由纯净天空筛选整理自 strcmp() in C/C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。