/* * SPDX-FileCopyrightText: 2018-2023 Bruce Cowan <bruce@bcowan.me.uk> * * SPDX-License-Identifier: GPL-3.0-or-later */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <hash.h> #include <hashtable.h> static void add_data (HashTable *table) { 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, [[maybe_unused]] void *) { printf ("%s:%s\n", (const char *) key, (const char *) value); } int main (void) { HashTable *table; table = hash_table_new (str_hash, str_equal, free, free); while (1) { add_data (table); hash_table_foreach (table, print_all, nullptr); } return 0; }