#include #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); } static int revsort(const void *_a, const void *_b) { const char *a = *(const char* const *)_a; const char *b = *(const char* const *)_b; return strcmp(b,a); } int main() { UT_array *strs,*strs2; char *s, **p=NULL; utarray_new(strs, &ut_str_icd); s=(char*)"hello"; utarray_push_back(strs, &s); s=(char*)"world"; utarray_push_back(strs, &s); while ( (p=(char**)utarray_next(strs,p)) != NULL ) { printf("%s ",*p); } printf("\n"); s=(char*)"begin"; utarray_insert(strs,&s,0); while ( (p=(char**)utarray_next(strs,p)) != NULL ) { printf("%s ",*p); } printf("\n"); utarray_new(strs2, &ut_str_icd); s=(char*)"alt"; utarray_push_back(strs2, &s); s=(char*)"oth"; utarray_push_back(strs2, &s); utarray_inserta(strs2, strs, 1); while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { printf("%s ",*p); } printf("\n"); utarray_erase(strs2,0,2); while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { printf("%s ",*p); } printf("\n"); utarray_pop_back(strs2); while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { printf("%s ",*p); } printf("\n"); utarray_concat(strs2, strs); while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { printf("%s ",*p); } printf("\n"); utarray_clear(strs2); utarray_concat(strs2, strs); while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { printf("%s ",*p); } printf("\n"); printf("sorting strs2\n"); utarray_sort(strs2,strsort); while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { printf("%s ",*p); } printf("\n"); printf("reverse sorting strs2\n"); utarray_sort(strs2,revsort); while ( (p=(char**)utarray_next(strs2,p)) != NULL ) { printf("%s ",*p); } printf("\n"); utarray_clear(strs2); utarray_free(strs2); utarray_free(strs); return 0; }