Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_lfind

Realiza una búsqueda lineal para la clave especificada. Una versión más segura de esta función está disponible; vea _lfind_s.

void *_lfind(
   const void *key,
   const void *base,
   unsigned int *num,
   unsigned int width,
   int (__cdecl *compare)(const void *, const void *)
);

key

Objeto para buscar.

base

Puntero a la base de datos de búsqueda.

num

Número de elementos de la matriz.

width

Ancho de los elementos de matriz.

compare

Puntero a la rutina de comparación. El primer parámetro es un puntero a cerrar para la búsqueda. El segundo parámetro es un puntero al elemento de matriz que se va a comparar con la clave.

Si se encuentra la clave, _lfind devuelve un puntero al elemento de matriz en base que coincide con key. Si no se encuentra la clave, _lfind devuelve NULL.

La función de _lfind realiza una búsqueda lineal por valor key en una matriz de elementos de num , cada uno de los bytes de width . A diferencia de bsearch, _lfind no requiere una matriz ajustar su tamaño. El argumento de base es un puntero a la base de la matriz que se buscará. El argumento de compare es un puntero a una rutina usuario- proporcionada que compara dos elementos de matriz y después devuelve un valor que especifica la relación. _lfind llama a la rutina de compare una o más veces durante la búsqueda, pasando punteros a dos elementos de la matriz en cada llamada. La rutina de compare debe comparar los elementos y después devolver cero (indican los elementos sea diferente) o 0 (indican los elementos sea idéntico).

Esta función valida sus parámetros. Si compare, key o num es NULL, o si base es NULL y *num es distinto de cero, o si width es menor que cero, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, errno se establece en EINVAL y la función devuelve NULL.

Rutina

Encabezado necesario

_lfind

<search.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

// crt_lfind.c
// This program uses _lfind to search a string array
// for an occurrence of "hello".

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

int compare(const void *arg1, const void *arg2 )
{
   return( _stricmp( * (char**)arg1, * (char**)arg2 ) );
}

int main( )
{
   char *arr[] = {"Hi", "Hello", "Bye"};
   int n = sizeof(arr) / sizeof(char*);
   char **result;
   char *key = "hello";

   result = (char **)_lfind( &key, arr, 
                      &n, sizeof(char *), compare );

   if( result )
      printf( "%s found\n", *result );
   else
      printf( "hello not found!\n" );
}
Hello encontrado

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft