searchC语言函数
时间: 2024-04-09 08:23:15 浏览: 10
searchC语言函数是一个用于在给定区域内进行线性搜索的函数,它可以搜索任何类型的数据,只需要提供一个比较函数来比较两个元素的大小。如果搜索到了关键数据,则返回找到的元素的地址;如果搜索的数据不在查找区域,则添加到查找区域,再把加入后的地址返回。该函数的原型如下:
```c
void* lsearch(void* key, void* district, size_t* n, size_t m, int (*func)(const void*, const void*));
```
其中,key是要查找的关键字的指针,district是要被搜索区域的开始地址,n是查找区域元素的个数,m是查找区域中每个元素的大小,func是一个函数指针,用来比较两个元素的大小。
下面是一个使用searchC语言函数的例子:
```c
#include <stdio.h>
#include <stdlib.h>
typedef int (*fc)(const void*, const void*);
int compare(const void* p1, const void* p2) {
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 = 27;
fc f = compare;
int* result = (int*)lsearch(&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;
}
```
该程序使用searchC语言函数在数组arr中线性搜索元素27,并将新元素加入到数组中。运行结果为"Number 27 is found"。