memcmp ( ) 函數和strcmp( )函數的使用方法

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

輸出:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章