c语言search函数怎么用
时间: 2023-08-12 15:07:24 浏览: 954
C语言查询函数
C语言中的search函数是标准库函数之一,用于在一个已排序的数组中查找某个元素。
它的函数原型如下:
```c
void *search(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
```
参数解释:
- key:要查找的元素指针
- base:已排序数组的起始地址
- nmemb:数组元素个数
- size:每个元素的大小
- compar:比较函数,用于比较两个元素的大小关系
函数返回值:
- 若找到,则返回指向该元素的指针
- 若未找到,则返回NULL
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 比较函数,按升序排列
int cmp(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(int);
int key = 5;
int *p = (int *)search(&key, arr, n, sizeof(int), cmp);
if (p != NULL) {
printf("找到了,下标为:%d\n", p - arr);
} else {
printf("未找到\n");
}
return 0;
}
```
输出结果:
```
找到了,下标为:2
```
注:本例中的数组已经按升序排序,如果是降序排序,则比较函数应该改为 `return (*(int *)b - *(int *)a);` 。
阅读全文