常量字符* 类型的无效操作数
invalid operands of types const char*
我正在尝试通过在原始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";
相关文章:
- 类型"int"和"const char [15]"到二进制"运算符<<"的无效操作数^
- 二进制表达式 cout 问题的无效操作数
- 二进制'operator+' 'int*'和'int*'类型的无效操作数
- 'const char [26]' 和 'LPSTR ' 类型的无效操作数
- 如何修复"二进制表达式的无效操作数"?
- 如何将无效操作数修复为二进制表达式
- 错误:二进制表达式('float' 和 'float')返回的无效操作数 (x & (1 << 31)) == 0
- 加密注释C++具有无效操作数的编译错误
- 如何将无效操作数修复为带有字符串的二进制表达式?
- 模板 &&运算符中的无效操作数+
- 类型别名和运算符<<使用 ostream_iterator 重载会导致无效操作数
- 类型为"double" snd const char [3]' 到二进制'operator<<'的无效操作数
- 二进制表达式的语义问题无效操作数("双精度"和"双精度")
- 'double' 和 'const char [2]' 到二进制"运算符!="的无效操作数|
- 具有重载运算符<<的无效操作数
- 'double' 和 'double' 类型的无效操作数
- 整数和无效操作数中的小数*已更新
- 二进制'operator<<' 'const char [6]'和'const char [3]'类型的无效操作数
- 将算法c++的无效操作数替换为二进制表达式
- 'char*'和'const char [2]'到二进制'operator+'类型的 C++ 无效操作数