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

输出:

 

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