【发布时间】:2015-11-19 16:52:29
【问题描述】:
我已经阅读了一些关于此的帖子,但我仍然无法修复我的代码。
int numericValue(char s, int i) {
if (strcmp(s[i], "$") == 0)
return 0;
else
return value(s[i]) + numericValue(s, i + 1);
}
这是我的代码,如果我将 int numericValue(char s, int i) 更改为 int numericValue(char *s, int i),我会收到以下警告:
传递 'strcmp' 的参数 1 使指针从整数而不进行强制转换 [-Wint-conversion]。
我能做什么?
【问题讨论】:
-
cad不是数组,因此您不能使用数组表示法。您想将char *传递给valorNumerico -
请添加您调用
valorNumerico的代码行(最初) -
...后跟
if(cad[i] == '$')并删除所有不必要的comparacion东西。 -
请注意,
strcmp()的第一个参数需要char *。即使您将函数签名更改为包含char *cad,strcmp()也不会编译。你需要仔细考虑你在做什么。可能是你需要comparacion = (cad[i] != '$');,但不清楚你在追求什么,所以答案也不清楚。
标签: c