gpt4 book ai didi

c++ - 将 char * 连接到字符串

转载 作者:搜寻专家 更新时间:2023-10-31 00:18:28 26 4
gpt4 key购买 nike

我有一个需要字符串的函数,我想将 const char * 连接到要返回的字符串。

下面是帮助说明这种情况的示例代码:

void TMain::SomeMethod(std::vector<std::string>* p)
{
p->push_back(TAnotherClass::Cchar1 + "/" + TAnotherClass::Cchar2);
}

这是另一个类,它们来自:

class TAnotherClass
{
public:
static const char * Cchar1;
static const char * Cchar2;
};

const char * TAnotherClass::Cchar1 = "Home";
const char * TAnotherClass::Cchar2 = "user";

我收到以下错误:二元运算符 +

类型为“const char*”和“const char*”的无效操作数

为什么这无效?请帮忙

最佳答案

char const* 不能与 + 运算符一起使用,如错误所述。

你需要做的是:

p->push_back(std::string(TAnotherClass::Cchar1) + "/" + TAnotherClass::Cchar2);
//^^^^^^^^^^^^ notice this

它创建了一个 std::string 类型的临时对象,然后你就可以使用 + 了。它连接字符串,一路创建临时字符串,最后将最终字符串传递给 push_back

除此之外,正如@Konrad 在评论中指出的那样,不要将指针传递给方法,而是使用引用,如:

void TMain::SomeMethod(std::vector<std::string> & p) //<-- note & 
{
p.push_back(std::string(TAnotherClass::Cchar1)+"/"+TAnotherClass::Cchar2);
}

关于c++ - 将 char * 连接到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10553892/

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