gpt4 book ai didi

c++ - char 赋值中的不兼容类型?

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:52 26 4
gpt4 key购买 nike

我收到此代码的错误。 “将 char 赋值给 char[13] 时类型不兼容”我不知道如何初始化这些数组并使其正常工作。基本上,该程序采用 ISBN 代码(4 组整数并在每组数字之间形成一个带有“-”的字符串)并验证它们是否正确。该程序使用类 ISBN 和加载实际 ISBN 代码并尝试使用类 ISBN 测试它们的主要函数。这是我的。

class ISBN {
private:
char group[6];
char publisher[8];
char book[8];
char check;
char isbn[13];
char compute_check();

public:
ISBN();
ISBN(char newisbn[]);
ISBN(char group[ ], char publisher[ ], char book[ ], char check);
bool valid();
char *getpublisher();
void print(ostream &o);
};

ISBN::ISBN(char newisbn[]) : isbn(newisbn) {}

程序加载这些 ISBN 编号,然后使用类 ISBN 按以下方式打印和测试它们...

strcpy(isbns[index++], "1-57676-074-X");
ISBN isbn(isbns[i]);
isbn.print(cout);
if (isbn.valid())

我在将 ISBN 代码转换为 ISBN 类以便它们可以被这些函数中的每一个操作时遇到问题。非常感谢任何帮助!谢谢!

最佳答案

这个:

ISBN::ISBN(char newisbn[]) : isbn(newisbn) {}

不做你想做的事。尽管您可能已被告知,数组与指针并不相同 - 这里的构造函数采用指针(伪装成数组)并尝试使用它来初始化实际数组。你需要:

ISBN::ISBN(char newisbn[]) {
strcpy( isbn, newisbn );
}

我还建议研究 std::string 类以满足您的一般字符串处理需求。

关于c++ - char 赋值中的不兼容类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com