#include <stdio.h>
#include <string.h>
int isearch(void *,void *,int,int,int (*cmp)(void *,void *));
int strc(void *s1,void *s2);
int main(void)
{
char *s[]={"a","b","c","d","e"};
char *to="d";
int ret=12;
ret=isearch(&to,&s,5,sizeof(char*),strc);//关键&to,&s
printf("第%d个元素与key相同\n",ret);
return 0;
}
int isearch(void *key,void *arry,int n,int elemsize,int (*cmp)(void *,void *))
{
int i=0;
for(i=0;i<n;i++)
{
void *next=(char*)arry+i*elemsize;
if(cmp(&key,&next)==0)//关键&key,&next
return i;
}
return 1;
}
int strc(void *s1,void *s2)
{
char *str1=*(char**)s1;
char *str2=*(char**)s2;
return strcmp(str1,str2);
}