当我们需要比较两个字符串时,可以使用C语言的字符串比较函数。下面会详细介绍字符串比较函数和使用方法。
字符串比较函数介绍
C语言中有几个字符串比较函数可以使用,常用的有strcmp()、strncmp()、strcasecmp()、strncasecmp()等,它们的返回值都是int类型,表示两个字符串的大小关系。
-
strcmp()函数
strcmp()函数比较两个字符串是否相同。该函数比较两个字符串s1和s2的第一个字符,如果相等,则继续比较下一个字符,直到遇到不相等的字符或者两个字符串的结束符“\0”。如果遇到不相等的字符,则比较它们的ASCII码值的大小关系,如果s1的字符大于s2的字符,则返回大于0的值;如果s1的字符小于s2的字符,则返回小于0的值;如果两个字符相等,则比较下一个字符,直到找到不相等的字符或者两个字符串结束。如果两个字符串都遍历结束了,返回0。
c
int strcmp(const char *s1, const char *s2); -
strncmp()函数
strncmp()函数和strcmp()函数的作用类似,但是strnmp()比较的字符个数可以指定。如果传入的n值大于字符串长度,则只比较字符串的长度部分,如果小于字符串长度,则只比较前n个字符。
c
int strncmp(const char *s1, const char *s2, size_t n); -
strcasecmp()函数
strcasecmp()函数和strcmp()函数也类似,但是它不区分大小写。如果遇到大小写字符相同的情况,继续比较下一个字符,直到找到不相等的字符或者两个字符串结束。
c
int strcasecmp(const char *s1, const char *s2); -
strncasecmp()函数
strncasecmp()函数和strcasecmp()函数类似,但是它只比较前n个字符。
c
int strncasecmp(const char *s1, const char *s2, size_t n);
使用方法示例
下面是几个使用方法示例:
-
使用strcmp()比较两个字符串是否相同
“`c
include
include
int main()
{
char str1[10] = “hello”;
char str2[10] = “world”;
int result;result = strcmp(str1, str2); if(result == 0) printf("Two strings are equal."); else printf("Two strings are not equal."); return 0;
}
“`输出结果为:Two strings are not equal.
-
使用strncasecmp()比较两个字符串前3个字符大小关系
“`c
include
include
int main()
{
char str1[10] = “HELLO”;
char str2[10] = “hello”;
int result;result = strncasecmp(str1, str2, 3); if(result > 0) printf("str1 is greater than str2."); else if(result < 0) printf("str1 is less than str2."); else printf("Two strings are equal."); return 0;
}
“`输出结果为:Two strings are equal.