c++ - 连接字符串不能按预期工作

标签 c++ operator-keyword string-concatenation stdstring standard-library

我知道这是一个常见问题,但在寻找引用资料和其他 Material 时,我找不到这个问题的明确答案。

考虑以下代码:

#include <string>

// ...
// in a method
std::string a = "Hello ";
std::string b = "World";
std::string c = a + b;

编译器告诉我它找不到 char[dim] 的重载运算符。

是不是表示字符串中没有+运算符?

但在几个例子中,有这样一种情况。如果这不是连接更多字符串的正确方法,那么最好的方法是什么?

最佳答案

您编写的代码可以正常工作。您可能正在尝试实现一些不相关但相似的目标:

std::string c = "hello" + "world";

这行不通,因为对于 C++,这似乎是在尝试添加两个 char 指针。相反,您需要将至少一个 char* 文字转换为 std::string。您可以执行您已在问题中发布的内容(正如我所说,此代码有效),或者您执行以下操作:

std::string c = std::string("hello") + "world";

关于c++ - 连接字符串不能按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304662/

相关文章:

c++ - 给定一个 DI-Graph。检查所有节点对是否存在来自 (u,v) 或 (v,u) 的路径

c++ - 尝试通过 C++ 中的套接字连接 go gmail imap 但没有成功

c++ - 运算符重载 "+"和 "="问题 -- school asst

ruby-on-rails - rails - 以字符串形式获取 YYYY-MM-dd 日期格式

javascript - 重构生成 HTML 的 JavaScript

erlang - 如何从 Erlang 中的字符串中获取 ascii 字符

c++ - 在类定义中使用自定义结构

c++ - 在 ITK 管道中使用 C++ 函数

c# - `` 吗? ?`` 运营商使用短路?

c++ - 我们可以使用()代替{}作为函数范围吗?