【发布时间】: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';
【问题讨论】:
我正在尝试散列一个字符串,我从教科书中得到了代码。
代码如下:
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';
【问题讨论】:
Cfor循环语法由3个表达式组成
for (initialization; condition; increment)
在您的代码中,for 循环声明中有四个表达式。如果您想要多次初始化(例如将sum 和i 初始化为零),您可以用逗号分隔它们:
for (sum = 0, i = 0; str[i] != '\0'; i++)
// ...
【讨论】: