#include<stdio.h>
#include <string.h>
int search(void* key,void* base,int n,int elemsize)
{
for(int i=0;i<n;i++)
{
if ( memcmp(key,((char* )base+i*elemsize),elemsize)==0)
//memcmp函数需要带上标准库头文件<string.h>
//memcmp(buffer1,buffer2,count),按照ASCII值比较内存区域 buf1 和buf2 的前count 个字节,值为0代表字节相同
return i;
}
return -1;
}
int main()
{ char A='e';
char arr[10]={'a','b','c','d','e','f','g','h','i','j'};
printf("%d\n",search(&A,arr,10,1));
int a=1;
int arr1[10]={1,2,3,4,5,6,7,8,9,10} ;
printf("%d\n",search(&a,arr1,10,4));
double c=3.0;
double arr2[10]={1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
printf("%d\n",search(&c,arr2,10,8));
float b=2.0;
float arr3[10]={1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0};
printf("%d",search(&b,arr3,10,4));
return 0;
}
上述函数对int、float、char、double等类型都适用,但是对于字符型指针,字符串,结构体里有指针成员,函数指针不适用,即内存中的指针成员不适用。
以上,继续学习去了。