У меня есть структура, которая выглядит так:
typedef struct dictionary_t{
char word[30];
int foo;
int bar;
} dictionary_t;
Что формирует упорядоченный массив:
dictionary_t dictionary[100];
Я хотел бы найти в этом массиве строку с помощью bsearch() и получить указатель на структуру. До сих пор это работало:
dictionary_t* result;
char target[30] = "target";
result = bsearch(&target, dictionary, dict_length, sizeof(dictionary_t), (int(*)(const void*,const void*)) strcmp);
Однако это немного хак и работает только потому, что строка является первым членом структуры. Что было бы лучшим способом найти строку в массиве структур и вернуть указатель на структуру?
dictionary_t
и передавать ее вместоstrcmp
. В вашем случае это довольно просто - просто обертка вокругstrcmp
. - person Eugene Sh.   schedule 09.05.2017bsearch()
. - person cxw   schedule 09.05.2017