一.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;
}
輸出: