Newer
Older
#include <stdlib.h>
#include <string.h>
#include <hashtable.h>
char key[20];
char value[20];
printf ("Input the key ");
scanf ("%s", key);
printf ("Input the value ");
scanf ("%s", value);
hash_table_insert (table, strdup (key), strdup (value));
char *key_lookup = strndup (key, strlen (key));
printf ("The last one inserted was: {'%s': ", key_lookup);
const char *val = hash_table_lookup (table, key);
printf ("'%s'}\n", val);
free (key_lookup);
}
static void
print_all (void *key,
void *value,
void *user_data)
{
printf ("%s:%s\n", (const char *) key, (const char *) value);
}
static unsigned
str_hash (const void *data)
{
const char *str = (const char *) data;
return (unsigned) str[0];
}
static bool
str_equal (const void *a,
const void *b)
{
return !strcmp (a, b);
table = hash_table_new (str_hash, str_equal, free, free);
while (1)
{
add_data (table);
hash_table_foreach (table, print_all, NULL);
}