[英]Subscripted value is neither array nor pointer nor vector at array index
[英]Subscripted value is neither array nor pointer nor vector (char positions)
我已經閱讀了一些有關此的文章,但是仍然無法修復我的代碼。
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]。
我能做什么?
如果您只想比較兩個字符,請使用以下雙等號(==),並注意美元符號周圍的單引號,因為字符文字被括在單引號中,
int numericValue(char* s, int i) {
if (s[i] == '$')
return 0;
else
return value(s[i]) + numericValue(s, i + 1);
}
一個人將使用strcmp比較兩個字符串,但是在您的情況下,您將一個字符傳遞給strcmp作為第一個參數,這是不匹配的。 請參閱下面的strcmp簽名:
int strcmp(const char *s1, const char *s2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.