#include <stdio.h> #include <stdlib.h> #include <string.h> struct test{ char* name; int age; int qq; } date[]={ { "solq",18,33333 }, { "wei cheng",20,444444 }, { "hong",55,5555555 } }; int sreach(struct test* ar,char* name); int main(int argc, char* argv[]) { int index=sreach(date,"solq"); if(index<0) return 0; printf("name:%s\n",date[index].name); printf("age:%d\n",date[index].age); printf("qq:%d\n",date[index].qq); return 0; } int sreach(struct test* ar,char* name) { int l,r,m,n=3; l=0; r=n-1; while(l<=r) { m=(l+r)/2; if(strcmp(ar[m].name,name)==0) return m; else if (strcmp(ar[m].name,name)<0) l=m+1; else r=m-1; } return -1; }