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
广告