对于我的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()时遇到了类似的错误。
答案 0 :(得分:0)
char *
是指向(可写)字符数组的指针。
用双引号".."
构成的构造表示一个常数字符串,它是一个恒定的字符数组(只读)。
char max(char x, char *y) {
上面声明了一个函数原型,该原型接受一个字符作为第一个参数,并接受一个字符数组作为第二个参数。
max("a", "b");
上面的代码调用函数max
,并传递2个字符串作为参数和2个字符数组。第一个参数不匹配,因为它需要一个字符。
'c'和c ++中的字符放在单引号中。{p> {1>}。
第二个参数需要保证不能更改,因为它是一个常量字符串。
因此,您必须这样做:
'