当我们在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()函数比较搜索字符串和数组元素。如果发现相同的字符串,程序将输出数组元素的下标并结束循环。