个人经历:记得第一次做一道判断字符串的题时,自己想当然的直接用对于号去判断,附代码(错误示范)
#include<stdio.h>
int main()
{
char arr[]="abc";
if(arr=="adc")
{
printf("haha!\n");
}
else
{
printf("hehe!\n")
}
return 0;
}
很显然执行后的结果就是hehe!我当时也很纳闷,这不就是判断是否相等嘛,直到我知道了strcmp函数!
#include<stdio.h>
int main()
{
char arr[]="abc";
int ret=strcmp(arr,"abc");
if(ret==0)
{
printf("haha!\n");
}
else
{
printf("hehe!\n")
}
return 0;
}
终于在strcmp函数的帮助下这一次的结果就是我想要的haha!啦
1、比较一个字符串是否相等需要用到
strcmp函数
。
2、当使用strcmp函数比较字符串大小时候会返回以下的值:
1.当第一个字符串的首字符
大于
第二个字符串的首字符时,返回一个>0的数。
2.当第一个字符串的首字符
小于
第二个字符串的首字符时,返回一个<0的数。
3.当第一个字符串的首字符
等于
第二个字符串的首字符时,返回0。
格式为:strcmp(“字符串1”,“字符串2”)
<0
or
==0
or
>0
3、strcmp比较的过程是一对一对的比较ASC II值的大小,如下:
char arr1[]="abce"
char arr2[]="abcd"
此时arr1和arr2分别顺序比较:
arr1:a b c e \0
arr2:a b c d \0
比较顺序 1 2 3 4 5
这里给出ASCII表,咱们对照一下。
![](https://i-blog.csdnimg.cn/blog_migrate/633a6667c07ae26f4a78bd2a828cd78d.webp?x-image-process=image/format,png)
2比出的结果是b=b=98
3比出的结果是c=c=99
4必出的结果是d<e 至此返回的便是一个小于0的值
一旦比较出大小后便会结束比较返回值。