📅  最后修改于: 2023-12-03 15:13:44.455000             🧑  作者: Mango
在C/C++中,strcmp()
是一个用于字符串的标准函数,它用于比较两个字符串是否相等。
strcmp()
函数的原型如下:
int strcmp(const char *str1, const char *str2);
strcmp()
函数用于比较两个字符串,其中:
str1
小于str2
,则返回一个小于0的整数。str1
等于str2
,则返回0。str1
大于str2
,则返回一个大于0的整数。以下代码演示了如何使用strcmp()
函数:
#include <stdio.h>
#include <string.h>
int main() {
char str1[50] = "Hello";
char str2[50] = "World";
char str3[50] = "Hello";
printf("Comparing str1 and str2: %d\n", strcmp(str1, str2));
printf("Comparing str1 and str3: %d\n", strcmp(str1, str3));
printf("Comparing str2 and str1: %d\n", strcmp(str2, str1));
return 0;
}
输出结果为:
Comparing str1 and str2: -15
Comparing str1 and str3: 0
Comparing str2 and str1: 15
strcmp()
函数只能用于比较ASCIIZ字符串,即字符串末尾必须是'\0'
。'\0'
,则strcmp()
函数的行为是未定义的。strcmp()
函数会逐个字符地比较字符串,直到遇到不同的字符或遇到字符串末尾为止,因此对于较长的字符串,strcmp()
函数的效率可能不高。std::string
类是更为理想的字符串类型。