hash.c
来自「开发linux应用-用gtk+和gdk开发linux图形用户界面应用--的实例」· C语言 代码 · 共 67 行
C
67 行
#include <stdio.h>#include <string.h>#include <glib.h>/* * Compare Names * * A Comparison function for inserting names alphabetically. */gint HashCompare (gconstpointer sName1, gconstpointer sName2){ return (!strcmp ((char *) sName1, (char *) sName2));}/* * Make a hash from the first two characters. */guint HashFunction (gconstpointer key){ return (((char *) key)[0] + ((char *) key)[1]);}/* * PrintNames * * A print function to display the data elements * in the list. */PrintNames (gpointer key, gpointer value, gpointer user_data){ g_print ("Key: %s, Value: %s\n", (gchar *) key, (gchar *) value);}int main (int argc, char *argv[]){ int nIndex; char buffer[88]; GHashTable *hTable; hTable = g_hash_table_new (HashFunction, HashCompare); /* --- Insert the names --- */ g_hash_table_insert (hTable, "Fred", "Boring"); g_hash_table_insert (hTable, "Mary", "Shifty"); g_hash_table_insert (hTable, "Sue", "Nice"); g_hash_table_insert (hTable, "John", "Strange"); g_hash_table_insert (hTable, "Shelley", "Abnormal"); g_hash_table_insert (hTable, "Markus", "Absent minded"); g_hash_table_insert (hTable, "Renato", "Paranoid"); g_hash_table_insert (hTable, "Renato", "Smart"); g_hash_table_insert (hTable, "Renato", "Intelligent"); g_hash_table_insert (hTable, "Renato", "Stubby toes"); g_print ("Renato is %s\n", (gchar *) g_hash_table_lookup (hTable, "Renato")); g_print ("-----\n"); /* --- Another way to print each of the data elements. --- */ g_hash_table_foreach (hTable, (GHFunc) PrintNames, NULL);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?