如何连接char *和字符串?

时间:2018-04-24 17:06:06

标签: c++

我的问题是我在尝试在解码的用户输入之前添加硬编码文本"334 "时出错:

 received = buf;
    if(strncmp(buf, "334 ", 4) == 0){
        decoding(received.c_str() + 4, strlen(buf + 4), buf);
        received = "334 " + buf;
    }

这是我得到的错误:

  

类型'const char [5]和'char [300]到binary'运算符+'的无效操作数

2 个答案:

答案 0 :(得分:4)

std::string有一个带char *的构造函数,因此您可以从std::string创建buf,如下所示:

std::string buf_str(buf);

来自cplusplus.comstd::string构造函数列表:

  

string (const char* s);

     

复制s指向的以null结尾的字符序列(C-string)。

答案 1 :(得分:0)

我不知道如果这适合你,但你可以考虑使用stringstream类,以便你可以将文本变量合并为:

stringstream longone;
string text;
longone << received << "334 ";
string=longone.str()