53 lines
1.1 KiB
C
53 lines
1.1 KiB
C
#include <stdio.h>
|
|
#include "utarray.h"
|
|
|
|
static int strsort(const void *_a, const void *_b)
|
|
{
|
|
const char *a = *(const char* const *)_a;
|
|
const char *b = *(const char* const *)_b;
|
|
return strcmp(a,b);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
UT_array *strs;
|
|
const char *s, **p;
|
|
|
|
utarray_new(strs,&ut_str_icd);
|
|
|
|
s = "hello";
|
|
utarray_push_back(strs, &s);
|
|
s = "world";
|
|
utarray_push_back(strs, &s);
|
|
s = "one";
|
|
utarray_push_back(strs, &s);
|
|
s = "two";
|
|
utarray_push_back(strs, &s);
|
|
s = "three";
|
|
utarray_push_back(strs, &s);
|
|
|
|
p = NULL;
|
|
while ( (p=(const char**)utarray_next(strs,p)) != NULL ) {
|
|
s = *p;
|
|
printf("%s\n",s);
|
|
}
|
|
|
|
printf("sorting\n");
|
|
utarray_sort(strs,strsort);
|
|
|
|
p = NULL;
|
|
while ( (p=(const char**)utarray_next(strs,p)) != NULL ) {
|
|
s = *p;
|
|
printf("finding %s\n",s);
|
|
#ifdef __cplusplus
|
|
p = (const char**)utarray_find(strs,&s,strsort);
|
|
#else
|
|
p = utarray_find(strs,&s,strsort);
|
|
#endif
|
|
printf(" %s\n", (p != NULL) ? (*p) : "failed");
|
|
}
|
|
|
|
utarray_free(strs);
|
|
|
|
return 0;
|
|
}
|