C语言 strcmp()函数

  • Post category:C

当我们在C语言中需要比较两个字符串时,可以使用strcmp()函数。strcmp()函数比较两个字符串,返回一个整数值,该值指示了字符串的大小关系。以下是strcmp()函数的语法:

int strcmp(const char *str1, const char *str2);

其中,参数str1和str2是被比较的两个字符串。

该函数返回值的含义如下:

  • 如果str1小于str2,则返回一个负整数。
  • 如果str1等于str2,则返回0。
  • 如果str1大于str2,则返回一个正整数。

接下来,我们将提供两个样例,演示strcmp()函数如何使用。

示例1:比较两个字符串的大小关系

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

int main()
{
    char str1[20], str2[20];

    printf("请输入字符串1:");
    scanf("%s", str1);

    printf("请输入字符串2:");
    scanf("%s", str2);

    int result = strcmp(str1, str2);

    if ( result < 0 )
    {
        printf("字符串1小于字符串2\n");
    }
    else if ( result == 0 )
    {
        printf("字符串1等于字符串2\n");
    }
    else
    {
        printf("字符串1大于字符串2\n");
    }

    return 0;
}

根据以上代码,程序将提示用户输入两个字符串并将它们存储在字符数组str1和str2中。然后使用strcmp()函数比较两个字符串,并将结果存储在变量result中。最后,根据比较结果输出不同的信息。

示例2:在字符串数组中查找某个字符串

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

int main()
{
    char name[5][20] = {"Tom", "Jerry", "Emily", "Jack", "Lisa"};
    char search[20];

    printf("请输入您要搜索的名字:");
    scanf("%s", search);

    for ( int i = 0; i < 5; i++ )
    {
        if ( strcmp(name[i], search) == 0 )
        {
            printf("名字 %s 在数组中的位置是 %d\n", search, i);
            break;
        }
    }

    return 0;
}

在这个例子中,我们创建了一个包含5个字符串的数组。程序将提示用户输入要搜索的字符串,并使用for循环遍历字符串数组中的每一个元素,使用strcmp()函数比较搜索字符串和数组元素。如果发现相同的字符串,程序将输出数组元素的下标并结束循环。