计算一个字符的ascii值之和
Calculating sum of ascii values of a char
我需要创建一个哈希函数,该函数应该在给定的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
的字符码时,此代码才能正常工作。
相关文章:
- RE2 不匹配非 ASCII 字符
- 打印从 0 到 255 的所有 ASCII 字符
- C++ 电话号码字母拨号程序 - 语法错别字?还是非 ASCII 字符?
- 如何从 QString 中包含的十六进制值中获取 ASCII 字符?
- Cin 和 getline 无法正确保存非 ascii 字符
- C++-将ASCII字符数组中可能的数值转换为字符的最简单方法
- 非ASCII字符的词典排序
- 将char类型指定给int以打印相应的ASCII字符
- 将非 ASCII 字符转换为英语对应字符C++
- 在 C++ 中从 8 位 ASCII 字符创建 7 位 ASCII 文本字符串
- 如何在不将其转换为 ASCII 字符的情况下显示 QByteArray 的十六进制值
- 如何遍历所有 ASCII 字符?
- 在控制台中以C++打印(并存储)高 ASCII 字符 (╔)
- Qt:文件名中的非 ASCII 字符替换为"?"
- ASCII字符时的意外终结
- C 17是否允许非ASCII字符作为标识符
- QML 映像不会在映像源中加载具有非 ASCII 字符的图像
- MFC Cedit将非ASCII字符转换为ASCII
- 如何与C 字符串中的非ASCII字符一起工作
- 使用 c++ 是否可以将 ASCII 字符转换为十六进制?