-3

我想从字符串生成一个散列码作为 int 。

是否有预定义的算法?在 C 中是否有该算法的实现?

char name[100]="langage c"

为该name缓冲区生成一个哈希码到一个整数变量中

int hash_code;

类似的东西

int algo_hash(char *name) {
    //hash algorithme
}
hash_code = algo_hash(name);

尽可能寻找简单的代码

4

2 回答 2

2

通用技术称为“散列”。如果你有一个已知的字符串列表,你可以使用工具gperf为它们生成一个完美的哈希函数。

如果字符串是随机的,则在具有这些约束的一般情况下这是不可能的。您可以使用 SHA-1 哈希算法,但它会从字符串中生成 160 位数字,并且不能 100% 保证这些值是唯一的(与 SHA-1 发生冲突的可能性很小,但并非不可能)。

于 2013-01-07T15:10:43.610 回答
1

我相信您需要的是实现hashing。它仍然不是独一无二的 - 我怀疑你是否能够避免碰撞。

于 2013-01-07T15:08:44.780 回答