اسم الوظيفة : lsearch
ملف الرأس : <stdlib.h>
النموذج الأولي للوظيفة : void* lsearch(void* key,void* District,size_t *n,size_t m,
int (*func)(const void*,const void*));
الوظيفة : تستخدم لإجراء بحث خطي من البداية إلى النهاية داخل منطقة معينة
المعلمات : مؤشر مفتاح فارغ* للكلمة الأساسية التي سيتم العثور عليها
تشير منطقة باطلة* إلى عنوان البداية للمنطقة المراد البحث فيها
size_t *n أوجد عدد عناصر المساحة
size_t m يعثر على حجم كل عنصر في النطاق
int (*func)(const void*,const void*) يتم استخدام مؤشر الدالة لمقارنة أحجام عنصرين.
قيمة الإرجاع : إذا تم العثور على بيانات أساسية في منطقة البحث، فسيتم إرجاع عنوان العنصر الذي تم العثور عليه؛
إذا لم تكن البيانات التي تم البحث عنها موجودة في منطقة البحث، فقم بإضافتها إلى منطقة البحث، ثم قم بإرجاع العنوان المضاف؛
مثال برنامج : استخدم هذه الوظيفة للبحث خطيًا عن العنصر 27 في المصفوفة أ وإضافة العنصر الجديد إلى المصفوفة
#include<stdio.h>#include<stdlib.h>typedefint(*fc)(constvoid*,constvoid*);intcompare(constvoid*p1,constvoid*p2){// قارن حجم رقمين int*pi1= (int*)p1;int*pi2=(int*)p2;return(*pi1-*pi2);}intmain(void){intarr[5]={25,14,29,68,55};size_tn= 5;intkey=27;fcf=compare;int*result=(int*)lsearch(&key,arr,&n,sizeof(int),f);if(result){printf(Number%disfoundn,key); }else{printf(Number%disnotfoundn,key);}return0;}
نتائج التشغيل
تم العثور على الرقم 27