将字符数组添加到const字符串&在C ++中

时间:2017-09-12 19:03:47

标签: c++ arrays string pointers character

char stringToAdd[4097] = ""; 

// some manipulations on stringToAdd to add some value to it. 

if(stringToAdd[0] != '\0') { 
response = MethodCalledHere("Some Random text");
}

MethodCalledHere(const String& inputParameter) {
 // some method definition here.
}

我已将stringToAdd添加到"一些随机文本"。像 -

这样的东西
response = MethodCalledHere("Some Random text" + stringToAdd);

但这给了我错误 ' +'无法添加两个指针。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

  

但是这给了我'+'不能添加两个指针的错误。

那是因为在这种情况下,+运算符的两边都是指针。

使用

response = MethodCalledHere(std::string("Some Random text") + stringToAdd);

如果您的函数需要char const*,那么您可以先构建std::string,然后使用std:string::c_str()

std::string s = std::string("Some Random text") + stringToAdd;
response = MethodCalledHere(s.c_str());

如果你能够使用C ++ 14,你可以使用字符串文字(感谢@Bathsheba的建议)。

response = MethodCalledHere("Some Random text"s + stringToAdd);

答案 1 :(得分:0)

auto MethodCalledHere(std::string inputParameter) {
    inputParameter.append(stringToAdd, 
                          stringToAdd + std::strlen(stringToAdd));
    return inputParameter;
}