C/C++ 中的 strcmp()


函数 strcmp() 是一个内置的库函数,它在“string.h”头文件中声明。此函数用于比较字符串参数。它按字典顺序比较字符串,这意味着它逐个字符地比较两个字符串。它从字符串的第一个字符开始比较,直到两个字符串的字符相等或找到 NULL 字符。

如果两个字符串的第一个字符相等,则检查第二个字符,依此类推。此过程将持续进行,直到找到 NULL 字符或两个字符不相等。

以下是 C 语言中 strcmp() 的语法:

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

此函数根据比较返回以下三个不同的值。

1.零 (0) - 如果两个字符串相同,则返回零。两个字符串中的所有字符都相同。

以下是 C 语言中两个字符串相等时 strcmp() 的示例:

示例

 现场演示

#include<stdio.h>
#include<string.h>
int main() {
   char str1[] = "Tom!";
   char str2[] = "Tom!";
   int result = strcmp(str1, str2);
   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");
   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

输出

Strings are equal
Value returned by strcmp() is: 0

2.大于零 (>0) - 当左侧字符串的匹配字符的 ASCII 值大于右侧字符串的字符的 ASCII 值时,它返回一个大于零的值。

以下是 C 语言中 strcmp() 返回大于零值时的示例:

示例

 现场演示

#include<stdio.h>
#include<string.h>
int main() {
   char str1[] = "hello World!";
   char str2[] = "Hello World!";
   int result = strcmp(str1, str2);
   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");
   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

输出

Strings are unequal
Value returned by strcmp() is: 32

3.小于零 (<0) - 当左侧字符串的匹配字符的 ASCII 值小于右侧字符串的字符的 ASCII 值时,它返回一个小于零的值。

以下是 C 语言中 strcmp() 的示例

示例

 现场演示

#include<stdio.h>
#include<string.h>
int main() {
   char leftStr[] = "Hello World!";
   char rightStr[] = "hello World!";
   int result = strcmp(leftStr, rightStr);
   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");
   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

输出

Strings are unequal
Value returned by strcmp() is: -32

更新于: 2020-06-24

27K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告