簡體   English   中英

從'char'到'const char *'的無效轉換[-fpermissive]

[英]Invalid conversion from 'char' to 'const char*' [-fpermissive]

錯誤在此行:if(strcmp(answer [i],ans [i])== 0)很抱歉,如果這是一個愚蠢的問題,我已經瀏覽了大多數舊帖子,但找不到答案。

int main()
{
    int score=0;
    char answer[20]={'T','F','F','T','F','F','T','T','T','T','F','F','T','F','T','F','T','F','T','T'};
    char ans[20]={'F','T','F','T','F','F','T','T','F','T','F','F','T','F','T','F','T','F','T','T'};

    for(int i=0;i<20;i++)
    {
        if (strcmp(answer[i],ans[i]) == 0)
        {
            score++;
            cout << "No. " << i+1 << " is correct!" << endl;
        }
        else
        {
            cout << "No. " << i+1 << "is false!" << endl;
        }   
    }
    cout << "Score: " << score << endl;

    return 0;
}

我用char代替字符串,所以不需要strcmp。 只是

if (answer[i] == ans[i])

謝謝! @JohnnyMopp

strcmp的簽名:

int strcmp ( const char * str1, const char * str2 );

它采用char*參數,並設計為比較以null結尾的字符串。 您傳遞了錯誤類型char的參數。 另外,違反了用法邏輯-如果兩個字符串的內容相等,則strcmp返回0,因此match檢查!strcmp(str1, str2) 比較兩個字符只是做

 answer[i] == ans[i]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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