Latest web development tutorials

funciones de la biblioteca C - bsearch ()

C biblioteca estándar - <stdlib.h> C biblioteca estándar - <stdlib.h>

descripción

funciones de la biblioteca Cvoid * bsearch (const void * clave , const void * base, nitems size_t, tamaño size_t, int (* compar) (const void *, const void *)) de nitemsmatriz de objetos para realizarla búsqueda binaria,punto de base que se va encontrar unamatriz,punto clave para encontrar loselementos,tamaño especifica el tamaño de cada elemento de la matriz.

Contenido de la matriz deben basarse en la correspondiente funciónde comparación compar en orden ascendente.

declaración

Aquí es) a función más bsearch (.

void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))

parámetros

  • clave - puntero a encontrar el tipo de elemento a void *.
  • de base - punto para llevar a cabo una serie de punteros para encontrar el primer tipo de objeto a void *.
  • nitems - señalado con el número de elementos de base de la matriz.
  • tamaño - el tamaño de cada elemento de la matriz, en bytes.
  • compar - Función utilizada para comparar dos elementos.

Valor de retorno

Si la búsqueda tiene éxito, la función devuelve un puntero a un puntero a un array de elementos a juego, de lo contrario, devuelve un puntero nulo. .

Ejemplos

El siguiente ejemplo muestra se utiliza la función 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("Found item = %d\n", *item);
   }
   else 
   {
      printf("Item = %d could not be found\n", *item);
   }
   
   return(0);
}

Vamos a compilar y ejecutar el programa anterior, lo que resultará en lo siguiente:

Found item = 32

C biblioteca estándar - <stdlib.h> C biblioteca estándar - <stdlib.h>