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

_lsearch

Realiza una búsqueda lineal por un valor; agrega al final de la lista si no encontrada. Una versión más segura de esta función está disponible; vea _lsearch_s.

void *_lsearch(
   const void *key,
   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 la matriz que se buscará.

num

Número de elementos.

width

Ancho de cada elemento de matriz.

compare

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

Si se encuentra la clave, _lsearch devuelve un puntero al elemento de matriz en base que coincide con key. Si no se encuentra la clave, _lsearch devuelve un puntero al elemento recién agregado al final de la matriz.

La función de _lsearch 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, _lsearch no requiere una matriz ajustar su tamaño. Si key no se encuentra, _lsearch lo agrega al final de la matriz y aumenta num.

El argumento de compare es un puntero a una rutina usuario- proporcionada que compara dos elementos de matriz y devuelve un valor que especifica la relación. _lsearch 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. compare debe comparar los elementos y 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

_lsearch

<search.h>

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

// crt_lsearch.c
#include <search.h>
#include <string.h>
#include <stdio.h>

int compare( const void *arg1, const void *arg2 );

int main(void)
{
   char * wordlist[4] = { "hello", "thanks", "bye" };
                            // leave room to grow...
   int n = 3;
   char **result;
   char *key = "extra";
   int i;

   printf( "wordlist before _lsearch:" );
   for( i=0; i<n; ++i ) printf( " %s", wordlist[i] );
   printf( "\n" );

   result = (char **)_lsearch( &key, wordlist, 
                      &n, sizeof(char *), compare );

   printf( "wordlist after _lsearch:" );
   for( i=0; i<n; ++i ) printf( " %s", wordlist[i] );
   printf( "\n" );
}

int compare(const void *arg1, const void *arg2 )
{
   return( _stricmp( * (char**)arg1, * (char**)arg2 ) );
}
lista de palabras antes de _lsearch: hello goodbye de las gracias
lista de palabras después de _lsearch: hello extensor de adiós de las gracias

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft