【C语言】strcmp() - 比较字符串

时间:2022-12-22 20:11:40

????前言????

这篇博客我们来介绍下字符串函数的使用,可能对字符串函数的使用大多人刚开始学习会学习了一段时间只是知道几种字符串函数的使用 像 strlen()、strcpy()、strcat()、strcmp()、这四种字符串库函数的使用。而字符串函数绝对不仅仅只有这四种库函数,实际上字符串函数是"五花八门"了,在这篇博客当中我就会详细介绍字符串函数的各种使用。

在使用C语言的字符串库函数的时候记得要添加相应的头文件#include<string.h>               

【C语言】strcmp() - 比较字符串


 ????strcmp() - 比较字符串????

strcmp() 函数的声明方式如下 ????

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

【C语言】strcmp() - 比较字符串

将 C语言 字符串 str1 与 C语言 字符串 str2 进行比较。

此函数开始比较每个字符串的第一个字符。 如果它们彼此相等,则继续以下对,直到字符不同或到达终止空字符。此函数执行字符的二进制比较。

str1 → 要进行比较的第一个字符串。

str2 → 要进行比较的第二个字符串。

比较每一位字符比较的大小是ASCll码的值。

该函数返回值如下:该函数具有返回值 int 

如果返回值小于 0,则表示 str1 小于 str2。

如果返回值大于 0,则表示 str1 大于 str2。

如果返回值等于 0,则表示 str1 等于 str2。

????strcmp()函数代码示例???? 

使用 strcmp() 函数代码示例如下 ????

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char str1[20] = { 0 };
char str2[20] = { 0 };
puts("请输入第一个字符串:");
scanf("%s", &str1);
puts("请输入第二个字符串:");
scanf("%s", &str2);
puts("返回的值:");
printf("%d",strcmp(str1, str2));
return 0;
}

【C语言】strcmp() - 比较字符串

????第一次的运行结果????

请输入第一个字符串:abc
请输入第二个字符串:abc
返回的值:0

????第二次的运行结果????

请输入第一个字符串:abcd
请输入第二个字符串:abc
返回的值:1

????第三次的运行结果???? 

请输入第一个字符串:abc
请输入第二个字符串:abcd
返回的值:-1

????创建自定义函数实现strcmp()????   

思路很简单其实 ????

相等为0、大于返回1、小于返回-1,重要的点注释其实都是写了的。

示例代码如下:????  

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
int my_strcmp(const char *str1, const char *str2)
{
assert(str1 && str2 != NULL);
while (*str1 == *str2)
{
//判断相等情况,有一个相等就代表*str2也是一样的
if (*str1 == '\0')
{
return 0;
}
*str1++;
*str2++;//自增比较
}
if (*str1 > *str2)
return 1;//大于
else
return -1;//小于
//其实还有一种更简单的方法,大于小于。
//return *str1 - *str2;
//这个是指针减指针的概念,前面介绍有说过!
}
int main()
{
char str1[20] = { 0 };
char str2[20] = { 0 };
puts("请输入第一个字符串:");
scanf("%s", &str1);
puts("请输入第二个字符串:");
scanf("%s", &str2);
int ret = my_strcmp(str1, str2);
printf("返回的值:%d\n",ret);
return 0;
}

【C语言】strcmp() - 比较字符串

????第一次的运行结果????

请输入第一个字符串:abc
请输入第二个字符串:abc
返回的值:0

????第二次的运行结果????

请输入第一个字符串:abcd
请输入第二个字符串:abc
返回的值:1

????第三次的运行结果???? 

请输入第一个字符串:abc
请输入第二个字符串:abcd
返回的值:-1

以上四个字符串函数是我们学C语言必须要掌握的,包括模拟字符串函数的实现也是有必要去实现的,这样的好处可以锻炼我们对函数库的了解,增强自己写代码的能力,建议反复观看,牢记掌握这四个字符串函数~ 

【C语言】strcmp() - 比较字符串