C 庫 - strncmp() 函式



C 庫的 strncmp() 函式用於比較最多指定數量的兩個以 null 結尾的字串的字元。此字串也稱為字串的結尾,即通過出現 null 字元來定義。

語法

以下是 C 庫 strncmp() 函式的語法 -

strncmp(const char *str1, const char *str2, size_t n)

引數

此函式接受以下引數 -

  • str1 - 這是要比較的第一個字串。

  • str2 - 這是要比較的第二個字串。

  • n - 此引數指的是要比較的最大字元數。

返回值

此函式返回整數值,即 -

  • 負數,如果 str1 小於 str2。

  • 正數,如果 str2 小於 str1。

  • 零,如果 str1 等於 str2。

示例 1

以下是檢查給定的兩個字串是否相等的 C 庫 strncmp() 函式。

#include <stdio.h> 
#include <string.h>  
int main() 
{  
   char str_1[] = "java";  
   char str_2[] = "java";      
   if (strncmp(str_1, str_2, strlen(str_2)) == 0) 
   {  
      printf("The strings '%s' and '%s' are equal.\n", str_1, str_2);  
   }  
   else 
   {  
      printf("The strings '%s' and '%s' are not equal.\n", str_1, str_2);  
   }  
   return 0;  
}  

輸出

執行上述程式碼後,我們得到以下結果 -

The strings 'java' and 'java' are equal.

示例 2

下面提到的程式說明了 C 的兩個函式 - strcpy() 建立字串副本,並使用 strncmp() 比較字串。

#include <stdio.h>
#include <string.h>

int main () 
{
   char str1[15];
   char str2[15];
   int ret;
   strcpy(str1, "abcdef");
   strcpy(str2, "abcdEF");

   ret = strncmp(str1, str2, 4);
   if(ret < 0) 
   {
      printf("str1 is less than str2");
   } 
   else if(ret > 0) 
   {
      printf("str2 is less than str1");
   } 
   else 
   {
      printf("str1 is equal to str2");
   }
   return(0);
}

輸出

上述程式碼產生以下輸出 -

str2 is less than str1
廣告