Example: #include <ccan/strmap/strmap.h>
#include <stdio.h>
static bool dump(const char *member, size_t value, void *unused)
{
printf("%s at %zu. ", member, value);
// true means keep going with iteration.
return true;
}
int main(int argc, char *argv[])
{
size_t i;
struct { STRMAP_MEMBERS(size_t); } map;
strmap_init(&map);
for (i = 1; i < argc; i++)
// This only adds the first time for this arg.
strmap_add(&map, argv[i], i);
strmap_iterate(&map, dump, NULL);
printf("\n");
return 0;
}
// Given 'foo' outputs 'foo at 1. '
// Given 'foo bar' outputs 'bar at 2. foo at 1. '
// Given 'foo foo bar zebra' outputs 'bar at 3. foo at 1. zebra at 4. '
|