用C语言写一个散列函数并解析
时间: 2023-12-29 17:33:59 浏览: 87
当然可以!下面是一个示例的散列函数的C语言实现:
```c
#include <stdio.h>
#include <string.h>
unsigned int hash(char *str) {
unsigned int hash = 5381;
int c;
while ((c = *str++)) {
hash = ((hash << 5) + hash) + c; // djb2 哈希算法
}
return hash;
}
int main() {
char str[100];
printf("请输入要散列的字符串:");
scanf("%s", str);
unsigned int hashedValue = hash(str);
printf("散列结果:%u\n", hashedValue);
return 0;
}
```
这个示例使用了djb2哈希算法,它是一种简单且常用的哈希算法。你可以将要散列的字符串作为输入,然后计算出一个无符号整数作为散列结果。
注意,这只是一个简单的示例,并不是完美的散列函数。实际情况下,你可能需要更复杂和更安全的散列函数来满足特定的需求。在实际应用中,你可能需要考虑散列冲突、数据分布等因素,并选择合适的散列函数。
阅读全文