English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظيفة مكتبة C void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)) ل nitems يُجري البحث الثنائي على مجموعة العناصر،base الذي يشير إليه المجموعة التي يتم البحث فيها،key الذي يشير إليه العنصر الذي يتم البحث عنه،size تحديد حجم كل عنصر في المجموعة.
المحتوى يجب أن يتم compar المُقارنة ترتب العناصر ترتيبًا تصاعديًا.
هذا هو إعلان وظيفة bsearch().
void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))
إذا كانت البحث ناجحًا، فإن الوظيفة تعود إلى مؤشر على العنصر الذي يطابق القيمة، وإلا تعود إلى مؤشر فارغ.
في هذا المثال، يتم عرض استخدام وظيفة bsearch().
#include <stdio.h> #include <stdlib.h> int cmpfunc(const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } int values[] = { 5, 20, 29, 32, 63 }; int main () { int *item; int key = 32; /* يُستخدم bsearch() للبحث عن القيمة 32 في المجموعة */ item = (int*) bsearch (&key, values, 5, sizeof (int), cmpfunc); if( item != NULL ) { printf("جُداء = %d\n", *item); } else { printf("Item = %d could not be found\n", *item); } return(0); }
لنقوم بترميز وتشغيل البرنامج أعلاه، وسيتم إنتاج النتيجة التالية:
المادة الموجودة = 32