c++ - 有没有办法在 C++ 中使用 operator+ 连接 std::strings?

标签 c++

<分区>

我有这样的功能

void foo (const char* myString){
...
}

我想像这样使用它

std::string tail = "something";
foo("my" + "string" + tail);

但我就是找不到简单的方法。当然,我可以在其他地方创建字符串并将其传递给 foo()。但我更喜欢找到一种内联的方法,因为 foo() 在代码中被调用了几次,我不想每次都创建一个字符串。我试过了

foo(std::string ("my" + "string" + tail).c_str())

但你可以猜到它不起作用。

最佳答案

"my""string" 是 C 风格的字符串文字,它们有一个奇怪的规则,即如果它们被写成 without一个+

因此 "my""string"+ tail 将起作用,并生成一个 std::string。但是,它仍然不是您函数的正确类型,除非您对结果使用 .c_str()

关于c++ - 有没有办法在 C++ 中使用 operator+ 连接 std::strings?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32853166/

相关文章:

c++ - hpp文件中的 block ,这是c++语法吗?为什么没有传入参数?有人可以解释一下吗?

c++ - 将传递的参数限制为字符串文字

c++ - 一种动态分配的对象在设定时间后自动删除的方法

c++ - 绘制波形 - 转换为 DB 压缩它

C++ TCP 服务器比较字符串失败

c++ - 具有自定义索引的数组

c++ - 使用 C++ 或 Bash/Shell 脚本评估后台 linux 命令的输出

c++ - std::string::assign 是否占用字符串的 "ownership"?

c++ - 在 C++ 中使用 opengl 旋转魔方面的问题

c++ - 指向堆栈分配对象和 move 构造的指针