其实这个程序没什么技术含量,也就是引用了BKDRhash函数而已。。
本程序的seed为131,有不同需要的朋友可以自行修改。
#include<stdio.h>
int main()
{
int ans;
char str[50];//定义需要获取hash值得字符串
unsigned int BKDRHash(char*str);//定义bkdrhash函数
A: printf("本程序可以计算一个字符串的BKDRhash值.\n请输入字符串:");
scanf("%s",str);//输入需要获取hash值的字符串赋值给字符数组str
ans=BKDRHash(str);//运算hash值
printf("字符串%s的BKDRhash值为%d\n\n",str,ans);//输出bkdrhash值
goto A;
return 0;
}
unsigned int BKDRHash(char*str)//函数的引用
{
unsigned int seed=131 ;//本BKDRhash的seed为131
unsigned int hash=0 ;
while(*str)
{
hash=hash*seed+(*str++);
}
return(hash & 0x7FFFFFFF);
}