计算一个字符的ascii值之和

Calculating sum of ascii values of a char

本文关键字:ascii 字符 一个 计算      更新时间:2023-10-16

我需要创建一个哈希函数,该函数应该在给定的char中返回ASCII值mod 100(这是HASH_TABLE_SIZE)的总和,但我似乎没有得到正确的输出。我如何纠正这个问题?

int string_set::hash_function(const char *s) {
int h = 0;
for (int i =0; i < *s; i++)
{
    h = h + int(s[i]);
    return h % HASH_TABLE_SIZE;
}
return h;
}

请勿中途进行return

试试这个:

int string_set::hash_function(const char *s) {
    int h = 0;
    for (int i =0; s[i] != ''; i++) // the loop condition didn't seem good
    {
        // the cast to unsigned char may be needed for system in which the type char is signed
        h = (h + (unsigned char)s[i]) % HASH_TABLE_SIZE;
    }
    return h;
}

只有当您的系统使用ASCII码作为char的字符码时,此代码才能正常工作。