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