簡體   English   中英

如何將一個未簽名的char連接到一個std :: string?

[英]How can I concatenate an `unsigned char` to an `std::string`?

我正在嘗試將一個unsigned char連接到一個std::string但是它給我一個錯誤,提示“ operator+ not defined”

#include <string>

int main()
{
   unsigned char a = 't';
   std::string s   = "uoyriri";

   s = s + a;  // error: no match for operator
}

std::string沒有charoperator+重載。 您可以執行以下操作:

s += 't';

但總的來說,您可能想要的是std::stringstream

std::stringstream ss;

ss << "uoyriri";
ss << a;

ss.str();  // The resulting string

您可以嘗試append方法:

s.append(1, static_cast<char>(a));

unsigned char強制轉換為char並使用運算符+=

std::string重載了+= ,您可以使用它來做到這一點:

s += a; 

這應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM