函數(shù)名:lfind
頭文件:<stdlib.h>
函數(shù)原型: void* lfind(void* key,void* district,int *n,int m,
int (*func)(const void*,const void*));
功能:用于在給定的區(qū)域內(nèi)從頭到尾進行線性搜索
參數(shù):void* key 指向要查找關(guān)鍵字的指針
void* district 指向要查找區(qū)域的指針
int *n 查找后的結(jié)果緩沖區(qū)
int m 要查找的區(qū)域的寬度
int (*func)(const void*,const void*) 一個函數(shù)的指針,此函數(shù)用來比較兩個元素的大小
返回值:若找到關(guān)鍵數(shù)據(jù),則返回找到的該元素的地址;否則返回NULL;
程序例:使用該函數(shù)實現(xiàn)在數(shù)組a中線性搜索元素68,輸出提示
#include<stdio.h> #include<stdlib.h> typedef int (*fc)(const void*,const void*); int compare(const void* p1,const void *p2){ //比較兩個數(shù)的大小 int *pi1=(int*)p1; int *pi2=(int*)p2; return (*pi1-*pi2); } int main(void){ int arr[5]={25,14,29,68,55}; size_t n=5; int key=29; fc f=compare; int* result=(int*)lfind(&key,arr,&n,sizeof(int),f); if(result){ printf("Number %d is found\n",key); }else{ printf("Number %d is not found\n",key); } return 0; }
運行結(jié)果
Number 29 is found
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程