我的问题是我在尝试在解码的用户输入之前添加硬编码文本"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'运算符+'的无效操作数
答案 0 :(得分:4)
std::string
有一个带char *
的构造函数,因此您可以从std::string
创建buf
,如下所示:
std::string buf_str(buf);
来自cplusplus.com的std::string
构造函数列表:
string (const char* s);
复制s指向的以null结尾的字符序列(C-string)。
答案 1 :(得分:0)
我不知道如果这适合你,但你可以考虑使用stringstream类,以便你可以将文本变量合并为:
stringstream longone;
string text;
longone << received << "334 ";
string=longone.str()