C语言比较字符串

  • Post category:C

当我们需要比较两个字符串时,可以使用C语言的字符串比较函数。下面会详细介绍字符串比较函数和使用方法。

字符串比较函数介绍

C语言中有几个字符串比较函数可以使用,常用的有strcmp()、strncmp()、strcasecmp()、strncasecmp()等,它们的返回值都是int类型,表示两个字符串的大小关系。

  1. strcmp()函数

    strcmp()函数比较两个字符串是否相同。该函数比较两个字符串s1和s2的第一个字符,如果相等,则继续比较下一个字符,直到遇到不相等的字符或者两个字符串的结束符“\0”。如果遇到不相等的字符,则比较它们的ASCII码值的大小关系,如果s1的字符大于s2的字符,则返回大于0的值;如果s1的字符小于s2的字符,则返回小于0的值;如果两个字符相等,则比较下一个字符,直到找到不相等的字符或者两个字符串结束。如果两个字符串都遍历结束了,返回0。

    c
    int strcmp(const char *s1, const char *s2);

  2. strncmp()函数

    strncmp()函数和strcmp()函数的作用类似,但是strnmp()比较的字符个数可以指定。如果传入的n值大于字符串长度,则只比较字符串的长度部分,如果小于字符串长度,则只比较前n个字符。

    c
    int strncmp(const char *s1, const char *s2, size_t n);

  3. strcasecmp()函数

    strcasecmp()函数和strcmp()函数也类似,但是它不区分大小写。如果遇到大小写字符相同的情况,继续比较下一个字符,直到找到不相等的字符或者两个字符串结束。

    c
    int strcasecmp(const char *s1, const char *s2);

  4. strncasecmp()函数

    strncasecmp()函数和strcasecmp()函数类似,但是它只比较前n个字符。

    c
    int strncasecmp(const char *s1, const char *s2, size_t n);

使用方法示例

下面是几个使用方法示例:

  1. 使用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.

  2. 使用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.