C 语言 strcmp()

strcmp() 函数在 string.h 头文件中定义。它有助于逐个字符地比较两个给定字符串。如果字符串相等,函数将返回零。


int strcmp(const char *str1, const char *str2); #where str1,str2 are strings

 

strcmp() 参数: 

strcmp() 函数接受两个参数。字符串比较将持续到字符串结束或字符不相同。

参数 描述 必需/可选
str1  要比较的第一个字符串 必需
str2 要比较的第二个字符串 必需

strcmp() 返回值

如果字符串相等,函数返回零;否则返回非零值。

输入 返回值
str1 < str2 值 < 0
str2 < str1 值 > 0
str1 = str2 值 = 0

strcmp() 示例 

示例 1:C 语言 strcmp() 函数的工作原理?


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

int main()
{
   char string1[20];
   char string2[20];
   int out;


   strcpy(string1, "flowers");
   strcpy(string2, "FLOWERS");

   out = strcmp(string1, string2);

   if(out < 0) {
      printf("string1 is less than string2");
   } else if(ret > 0) {
      printf("string2 is less than string1");
   } else {
      printf("string1 is equal to string2");
   }
   
   return(0);
}

输出


string2 is less than string1

示例 2:C 语言 strcmp() 如何工作?


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

int main (){

  char string1[] = "abcd", string2[] = "abCd", string3[] = "abcd";
  int out;

  // comparing string1 and string2
  out = strcmp(string1, string2);
  printf("strcmp(string1, string2) = %d\n", out);

  // comparing string1 and string3
  out = strcmp(string1, string3);
  printf("strcmp(string1, string3) = %d\n", out);

  return 0;
}

输出


strcmp(string1, string2) = 1
strcmp(string1, string3) = 0