Man page - bsearch(3)

Packages contains this manual

Available languages:

en fr pt_BR es pl ko ja ru ro de

Manual

bsearch

NOME
BIBLIOTECA
SINOPSE
DESCRIÇÃO
VALOR DE RETORNO
ATRIBUTOS
PADRÕES
HISTÓRICO
EXEMPLOS
VEJA TAMBÉM
TRADUÇÃO

NOME

bsearch - busca binĂĄria em um array ordenado

BIBLIOTECA

Biblioteca C PadrĂŁo ( libc , -lc )

SINOPSE

#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 ]));

DESCRIÇÃO

A função bsearch () busca em um array de nmemb objetos, a partir do membro inicial apontado por base , por um membro que corresponde ao objeto apontado por chave . O tamanho de cada membro do array é especificado por tam .

O conteĂșdo do array deve estar em ordem crescente de acordo com a função de comparação referenciada por compar . Espera-se que a rotina compar tenha dois argumentos que apontam para o objeto chave e para um membro do array, nesta ordem, e deve retornar um nĂșmero inteiro menor, igual ou maior que zero se o objeto chave for descoberto, respectivamente, como sendo menor que, igual a ou maior que o membro do array.

VALOR DE RETORNO

A função bsearch () retorna um ponteiro para um membro correspondente do array, ou NULO se nenhuma correspondĂȘncia foi encontrada. Se houver vĂĄrios elementos que correspondem Ă  chave, o elemento retornado Ă© nĂŁo especificado.

ATRIBUTOS

Para uma explicação dos termos usados nesta seção, consulte attributes (7).

Image grohtml-3937959-1.png

PADRÕES

C11, POSIX.1-2008.

HISTÓRICO

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

EXEMPLOS

O exemplo abaixo primeiro classifica um array de estruturas usando qsort (3) e, em seguida, recupera os elementos desejados usando 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, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" },
{ 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" },
{ 9, "sep" }, {10, "oct" }, {11, "nov" }, {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': unknown month\n", argv[i]);
else
printf("%s: month #%d\n", res->name, res->nr);
}
exit(EXIT_SUCCESS);
}

VEJA TAMBÉM

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

TRADUÇÃO

A tradução para portuguĂȘs brasileiro desta pĂĄgina man foi criada por Paulo CĂ©sar Mendes <drpc@ism.com.br>, AndrĂ© Luiz Fassone <lonely_wolf@ig.com.br> e Rafael Fontenelle <rafaelff@gnome.org>.

Esta tradução Ă© uma documentação livre; leia a Licença PĂșblica Geral GNU VersĂŁo 3 ou posterior para as condiçÔes de direitos autorais. Nenhuma responsabilidade Ă© aceita.

Se vocĂȘ encontrar algum erro na tradução desta pĂĄgina de manual, envie um e-mail para a lista de discussĂŁo de tradutores .