常量字符* 类型的无效操作数

invalid operands of types const char*

本文关键字:无效 操作数 类型 字符 常量      更新时间:2023-10-16

我正在尝试通过在原始const char* a中添加一个新字符串"hello"来创建一个新const char* b

const char* a = some_code_here;
const char* b = (a + "_hello").c_str();

我得到的错误是:

error: invalid operands of types const char* and const char [6] to binary operator+

我做错了什么吗?

切换到字符串,即std::string
跟着我重复,忘记使用 char 或 C 样式字符串
正如你所证明的,这是许多问题之一。

我说切换到std::string吗?

您的char *是一个指针。 仅此而已,仅此而已,一个指针。 指向单个char的指针;不是一个结构。 char数据类型没有方法。

切换到 std::string

您可以添加(连接)std::string

切换到 std::string

std::string具有c_str()方法。 除非您了解后果,否则请勿使用;完全。

您不能随意在C++中添加const char*。这些对象只是指向内存的连续部分的指针,因此添加它们没有意义。相反,您应该使用 std::string 类:

std::string a = "something";
std::string b = a + "_hello";