Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       bsearch - căutare binară a unei matrice sortate

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <stdlib.h>

       void *bsearch(const void key[.size], const void base[.size * .nmemb],
                     size_t nmemb, size_t size,
                     int (*compar)(const void [.size], const void [.size]));

DESCRIERE

       Funcția bsearch() caută într-o matrice de obiecte nmemb, al cărei membru inițial este indicat de base, un
       membru  care  se  potrivește  cu  obiectul  indicat de key.  Dimensiunea fiecărui membru al matricei este
       specificată de size.

       Conținutul matricei ar trebui să fie în ordine crescătoare în conformitate cu funcția  de  comparație  la
       care  face referire compar.  Se așteaptă ca rutina compar să aibă două argumente care indică obiectul key
       și un membru al matricei, în această ordine, și ar trebui să returneze un număr întreg mai mic, egal  sau
       mai  mare  decât  zero  dacă obiectul key este găsit, respectiv, mai mic, egal sau mai mare decât membrul
       matricei.

VALOAREA RETURNATĂ

       Funcția bsearch() returnează un indicator către un membru al matricei care corespunde sau NULL dacă nu se
       găsește nicio potrivire.  În cazul în  care  există  mai  multe  elemente  care  corespund  cheii  (key),
       elementul returnat este nespecificat.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ bsearch()                                                               │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       C11, POSIX.1-2008.

ISTORIC

       POSIX.1-2001, C89, C99, SVr4, 4.3BSD.

EXEMPLE

       Exemplul de mai jos sortează mai întâi o matrice de structuri utilizând qsort(3), apoi extrage elementele
       dorite utilizând bsearch().

       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       #define ARRAY_SIZE(arr)  (sizeof((arr)) / sizeof((arr)[0]))

       struct mi {
           int         nr;
           const char  *name;
       };

       static struct mi  months[] = {
           { 1, "ian" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" },
           { 5, "mai" }, { 6, "iun" }, { 7, "iul" }, { 8, "aug" },
           { 9, "sep" }, {10, "oct" }, {11, "noi" }, {12, "dec" }
       };

       static int
       compmi(const void *m1, const void *m2)
       {
           const struct mi *mi1 = m1;
           const struct mi *mi2 = m2;

           return strcmp(mi1->name, mi2->name);
       }

       int
       main(int argc, char *argv[])
       {
           qsort(months, ARRAY_SIZE(months), sizeof(months[0]), compmi);
           for (size_t i = 1; i < argc; i++) {
               struct mi key;
               struct mi *res;

               key.name = argv[i];
               res = bsearch(&key, months, ARRAY_SIZE(months),
                             sizeof(months[0]), compmi);
               if (res == NULL)
                   printf("'%s': lună necunoscută\n", argv[i]);
               else
                   printf("%s: luna nr.%d\n", res->name, res->nr);
           }
           exit(EXIT_SUCCESS);
       }

CONSULTAȚI ȘI

       hsearch(3), lsearch(3), qsort(3), tsearch(3)

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  NICIO
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                   15 iunie 2024                                       bsearch(3)