如何将`unsigned char`连接到`std :: string`?

时间:2012-02-19 15:59:47

标签: c++

我正在尝试将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
}

4 个答案:

答案 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; 

这应该有用。