一.memcmp()函数
头文件:
#include<string.h>
函数:
memcmp ( a , b , n );//a和b是两个数组,n 是你想要比较的长度;
结果:
如果a比b大,返回值大于0;
如果a比b小,返回值小于0;
如果a等于b,返回值等于0;
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="123457";
char b[]="123456";
int kk=memcmp(a,b,sizeof a);
printf("%d\n",kk);//kk==1
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="123456";
char b[]="123457";
int kk=memcmp(a,b,sizeof a);
printf("%d\n",kk);//kk==-1
return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="123456";
char b[]="123456";
int kk=memcmp(a,b,sizeof a);
printf("%d\n",kk);//kk==0
return 0;
}
注意:
这个函数在比较的时候是按照字节来比较的;
注意比较的长度,如果超出数组的长度,但是这个比较是不会停止的,会在 '\0' 后继续比较下去;
一定要注意数组的长度,如果超出了数组的长度,那么结果就可能会出错;
例如下面的代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="123456";
char b[]="123456";
int kk=memcmp(a,b,10);
printf("%d\n",kk);//kk==-1;
return 0;
}
二.strcmp( )函数
头文件:
#include<string.h>
函数:
strcmp ( a, b );//比较数组a和数组b;
结果:
如果a比b大,返回值大于0;
如果a比b小,返回值小于0;
如果a等于b,返回值等于0;
注意细节:
函数strcmp ( a, b ),在比较的时候是按照字符进行比较的,一直比较到出现结果;
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[]="123456";
char b[]="123456";
int tt=strcmp(a,b);
if(tt>0)//数组a大于数组b;
printf("a > b\n");
else if(tt<0)//数组a小于数组b;
printf("a < b\n");
else//数组a等于数组b;
printf("a = b\n");
return 0;
}
输出: