RAD Studio |  |

lfind

Header File

stdlib.h

Category

Memory and String Manipulation Routines

Prototype

void *lfind(const void *key, const void *base, size_t *num, size_t width, int (_USERENTRY *fcmp)(const void *, const void *));

Description

Performs a linear search.

lfind makes a linear search for the value of key in an array of sequential records. It uses a user-defined comparison routine fcmp. The fcmp function must be used with the _USERENTRY calling convention.

The array is described as having *num records that are width bytes wide, and begins at the memory location pointed to by base.

Return Value

lfind returns the address of the first entry in the table that matches the search key. If no match is found, lfind returns NULL. The comparison routine must return 0 if *elem1 == *elem2, and nonzero otherwise (elem1 and elem2 are its two parameters).

Example

Copy Code

    #include <stdio.h>
    #include <stdlib.h>
    int compare(int *x, int *y)
    {
       return( *x - *y );
    }
    int main(void)
    {
       int array[5] = {35, 87, 46, 99, 12};
       size_t nelem = 5;
       int key;
       int *result;
       key = 99;
       result = (int *) lfind(&key, array, &nelem,
          sizeof(int), (int(*)(const void *,const void *))compare);
       if (result)
          printf("Number %d found\n",key);
       else
          printf("Number %d not found\n",key);
       return 0;
    }

Portability

POSIX | Win32 | ANSI C | ANSI C++
| + |  |

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!