#include <stdio.h> #include <strings.h> #include <stdlib.h> #include "dict.h" int dictSdsKeyCaseCompare(void *privdata, const void *key1, const void *key2) { return strcasecmp(key1, key2) == 0; } unsigned int dictSdsCaseHash(const void *key) { return dictGenCaseHashFunction((unsigned char *)key, strlen((char *)key)); } void dictSdsDestructor(void *privdata, void *val) { //free(val); } int main() { dictType commandTableDictType = { dictSdsCaseHash, /* hash function */ NULL, /* key dup */ NULL, /* val dup */ dictSdsKeyCaseCompare, /* key compare */ dictSdsDestructor, /* key destructor */ NULL /* val destructor */ }; dict* d = dictCreate(&commandTableDictType, NULL); char* k = "hello"; char* v = "world\n"; dictAdd(d, k, v); dictAdd(d, (void*)k, v); dictAdd(d, "firstname", "zhou"); dictAdd(d, "secondname", "jackson"); printf("firstname=%s\n",dictFetchValue(d,"firstname")); dictEntry* entry = dictFind(d, "secondname"); printf("secondname=%s\n",dictGetVal(entry)); return 0; }