我正在尝试将unsigned char
连接到std::string
,但它给出了一个错误,说“operator+
未定义”
#include <string>
int main()
{
unsigned char a = 't';
std::string s = "uoyriri";
s = s + a; // error: no match for operator
}
答案 0 :(得分:3)
std::string
operator+
没有char
重载。您可以执行以下操作:
s += 't';
但总的来说,你可能想要的是std::stringstream
:
std::stringstream ss;
ss << "uoyriri";
ss << a;
ss.str(); // The resulting string
答案 1 :(得分:3)
您可以尝试append
方法:
s.append(1, static_cast<char>(a));
答案 2 :(得分:1)
将unsigned char
投射到char
并使用运算符+=
。
答案 3 :(得分:0)
std::string
已超载+=
您可以使用它来执行此操作:
s += a;
这应该有用。