【问题标题】:C Warning: Statement with no effect for hashing stringC 警告:对散列字符串无效的语句
【发布时间】:2020-08-14 07:02:27
【问题描述】:

我正在尝试散列一个字符串,我从教科书中得到了代码。

代码如下:

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】:

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

    for (initialization; condition; increment)
    

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

    for (sum = 0, i = 0; str[i] != '\0'; i++)
        // ...
    

    【讨论】:

    • 谢谢!效果很好,我实际上喜欢一个简单的修复,哈哈......
    • @EricPostpischil 已修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2022-12-12
    相关资源
    最近更新 更多