从'char'到'const char *'的无效转换[-fpermissive]

时间:2018-12-08 15:15:14

标签: c++ string

错误在此行: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;
}

2 个答案:

答案 0 :(得分:2)

我使用char代替字符串,因此不需要strcmp。 只是

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

谢谢! @JohnnyMopp

答案 1 :(得分:0)

strcmp的签名:

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

它带有char*个参数,旨在比较以null结尾的字符串。您传递了错误类型char的参数。此外,违反了使用逻辑-如果两个字符串的内容相等,则strcmp返回0,因此匹配检查!strcmp(str1, str2)。比较两个字符就可以了

 answer[i] == ans[i]