请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

字符串哈希(HASH)函数【来自GLIB】

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

看了一下GLIB中的GHashTable的源码,比较有用的字符串哈希函数如下:

/**
* Author:puresky
* Date: 2010/12/21
* Purpose: str_hash
*/
#include <stdio.h>
#include <stdlib.h>

//GLIB中的字符串哈希函数[g_str_hash]
unsigned int str_hash(const char *str)
{
const signed char *p = (const signed char*)str;
unsigned int h = *p;
if(h)
{
for(p += 1; *p != '\0'; ++p)
h = (h << 5) - h + *p;
}
return h;
}

int main(int argc, char** argv)
{
const char* str = "abc123456abcdefghijklmnopqrstuvwxyz";
const char* p = str;
while(*p != '\0')
{
printf("%s:%un", p, str_hash(p));
p++;
}
system("pause");
return 0;
}

 

运行结果如下:


鲜花

握手

雷人

路过

鸡蛋
专题导读
上一篇:
KMP算法的原理及实现【附C语言源码】(原创)发布时间:2022-05-14
下一篇:
LINUX遍历文件夹【C语言版本】(原创)发布时间:2022-05-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap