C警告:散列字符串无效的语句

问题描述 投票:0回答:1

我正在尝试对字符串进行哈希处理,然后从课本中获得了代码。

这里是代码:

int hash(char *str) {
  int i, sum;
  for (sum = 0; i = 0; str[i] != '\0'; i++)
    sum += (int) str[i];
  return sum % MODVAL;
}

给我的错误代码是str[i] != '\0';

c hash hashtable hashcode
1个回答
3
投票

C for循环语法由3个表达式组成

for (initialization; condition; increment)

在您的代码中,您的for循环声明中有四个表达式。如果要多次初始化(例如sumi初始化为零),则可以用逗号来分隔它们:

for (sum = 0, i = 0; str[i] != '\0'; i++)
    // ...
© www.soinside.com 2019 - 2024. All rights reserved.