當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。