strcmp()

144 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

🚩write in front🚩

🔎大家好,我是泽奀,希望你看完后。能对你有所帮助,不足请指正,共同学习交流🔎
🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家^星级博主~掘金⇿InfoQ创作者~周榜89»总榜1512🏅
🆔本文由 謓泽 原创 CSDN首发🙉如需转载还请通知⚠
📝个人主页-掘金 (juejin.cn)💬
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏-[C系列] 从0到1 - 泽奀的专栏 - 掘金 (juejin.cn)🎓
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

 🎄strcmp() - 比较字符串🎄

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

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

将 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;
}

🎄第一次的运行结果🎄

请输入第一个字符串: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;
}

🎄第一次的运行结果🎄

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

🎄第二次的运行结果🎄

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

🎄第三次的运行结果🎄 

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

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