如何解决此“类型'char'与类型'const char *'的参数不兼容”的错误?

时间:2019-01-27 22:09:19

标签: c++

对于我的C ++类,我需要有关此问题的帮助。我只是无处可去,也找不到关于我的代码为什么不正确的解释。

“编写一个具有两个C字符串参数的函数max,并返回两个中较大的一个。”

这是我需要回答的问题。它基于自动分级代码检查器,但我也使用Visual Studio进行检查并从标题中获取错误。

我真的不知道我没有尝试过什么。我什至尝试过从quizlet复制和粘贴,但仍然无法获得正确的答案。

代码检查器不断告诉我我应该使用int类型和=。我不知道这两个代码在哪里适合。

            #include "pch.h"
            #include <string.h>
            #include <stdio.h>
            #include <iostream>

            char max(char x, char *y) {
                if (strcmp(x, y) > 0) {
                    return x;
                }
                else
                {
                return *y;
                }

            }


            int main()
            {
                using namespace std;
                max("a", "b");
            }

这是我得到的确切错误。

“ char”类型的错误(活动)E0167参数与“ const char *”类型的参数不兼容

错误出现在strcmp()内的x变量上。

类型为“ const char *”的错误(活动)E0167参数与类型为“ char”的参数不兼容

我在main()中调用max()时遇到了类似的错误。

1 个答案:

答案 0 :(得分:0)

char *是指向(可写)字符数组的指针。

用双引号".."构成的构造表示一个常数字符串,它是一个恒定的字符数组(只读)。

char max(char x, char *y) {

上面声明了一个函数原型,该原型接受一个字符作为第一个参数,并接受一个字符数组作为第二个参数。

max("a", "b");

上面的代码调用函数max,并传递2个字符串作为参数和2个字符数组。第一个参数不匹配,因为它需要一个字符。

'c'和c ++中的字符放在单引号中。{p> {}。

第二个参数需要保证不能更改,因为它是一个常量字符串。

因此,您必须这样做:

'