bsort

来源:互联网 发布:手机知乎怎么上传图片 编辑:程序博客网 时间:2024/05/18 03:05
#include<stdio.h>#include<string.h>#include<stdlib.h>#define NELEMS(array) (sizeof(array)/sizeof(array[0]))typedef struct Nameval Nameval;struct Nameval{char *name;int value;};Nameval htmlchars[]={    "aelig", 0x00c6,    "aacute", 0x00c1,    "acirc", 0x00c2,    "zeta", 0x03b6,};int nvcmp(const void *va,const void*vb){    const Nameval *a,*b;    a=(Nameval*)va;    b=(Nameval*)vb;    return strcmp(a->name,b->name);}int lookup(char * name,Nameval tab[],int ntab){    Nameval key,*np;    key.name=name;    key.value=0;    np=(Nameval*)bsearch(&key,tab,ntab,sizeof(tab[0]),nvcmp);    if(np==NULL)return -1;    else return np-tab;}int main(int argc,char *argv[]){    int half;    half=lookup("acirc",htmlchars,NELEMS(htmlchars));    printf("%d",half);    return 0;}

原创粉丝点击