簡體   English   中英

下標值既不是數組,也不是指針,也不是向量(char位置)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM