Use nocase string as g_hash_table's key

原创 2004年08月24日 22:14:00

/* ghashtabledemo.c -- GHashTable demo */

#include <glib.h>
#include <string.h>

void print_entry(gpointer key, gpointer data, gpointer user_data)
{
  /* user_data not used */
  g_print("key: %-10s     value: %-10s/n", (gchar *)key, (gchar *)data);
}

guint g_str_case_hash (gconstpointer key) {
 gchar *upkey = g_ascii_strdown (key, strlen(key));
 guint hash = g_str_hash (upkey);
 g_free (upkey);
 return hash;
}

gboolean g_str_case_equal (gconstpointer a, gconstpointer b) {
 if (!g_ascii_strcasecmp (a, b))
  return TRUE;
 else
  return g_str_equal (a, b);
}

int main(int argc, char *argv[])
{
  GHashTable *hash1;
 
  hash1 = g_hash_table_new(g_str_case_hash, g_str_case_equal);

  /* insert a bunch of entries */
  g_hash_table_replace(hash1, g_strdup("foo"), g_strdup("bar"));
  g_hash_table_replace(hash1, g_strdup("FoO"), g_strdup("BAR"));
  g_hash_table_replace(hash1, g_strdup("more"), g_strdup("junk"));

  /* print the contents */
  g_print("Hash table entries:/n");
  g_hash_table_foreach(hash1, print_entry, NULL);

  return 0;
}

/*
 * gcc -ansi -Wall `pkg-config glib-2.0 --cflags` -o test test.c  `pkg-config glib-2.0 --libs`
 */

vueJs源码解读0-2

上篇文章已经对index.js中的基本调用情况做了说明,接下来的几篇将对各个函数做仔细的分析,能力有限,文章中不足之处,希望大家能够指正! 上篇中提到在instance/vue中使用了9个高阶函数...
  • yechonglaile
  • yechonglaile
  • 2016年05月14日 20:56
  • 11786

Android Lint 检查规则列表

英文原文: http://tools.android.com/tips/lint-checks 这里的Android Lint所检查规则列表是从ADT21中得来的默认的,在Android S...
  • qq_29134495
  • qq_29134495
  • 2016年05月24日 09:30
  • 1446

GoLang之”奇怪用法“实践总结

2013-11-23 wcdj 0 摘要 本文通过对A Tour of Go的实践,总结Go语言的基础用法。 1 Go语言”奇怪用法“有哪些? 1,go的变量声明顺序是:”先写变量名,再写类...
  • delphiwcdj
  • delphiwcdj
  • 2013年11月23日 17:48
  • 22453

hash_map中string为key的解决方法

当hash_map中使用string为key时,需用户扩展命名空间,否则报错如下: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../includ...
  • langlang2671
  • langlang2671
  • 2012年12月13日 14:43
  • 8722

redis之key、string、list、set、sort set、hash、精细持久化、snapshotting快照保存、主从模式

keys:在redis里面,除了"\n"和空格不能作为名字外,其他都可以,长度不做限制; 命名时:key不要太长,占内存,查询慢;也不要太短,不容易识别 exists key:测试指定key是否存在 ...
  • qq_34803918
  • qq_34803918
  • 2017年06月25日 12:34
  • 127

hash_map中string为key的解决方法

当hash_map中使用string为key时,需用户扩展命名空间,否则报错如下: /usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../incl...
  • weiqubo
  • weiqubo
  • 2016年05月19日 16:47
  • 1254

c++,string,compare,nocase,for copy

总结:如何在c++中进行大小写忽略的比较,基于std:string  ref1,ref2,ref3 问题由来: 标准字符 (typedef basic_string ...
  • mayuanshuaimay
  • mayuanshuaimay
  • 2012年01月06日 12:07
  • 2348

uthash hash string

  • 2013年09月04日 15:38
  • 281KB
  • 下载

string Hash提供器 加密

  • 2009年08月20日 17:28
  • 2KB
  • 下载

string Hash提供器 加密

  • 2010年01月29日 16:36
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Use nocase string as g_hash_table's key
举报原因:
原因补充:

(最多只允许输入30个字)