Как std::string присвоить значение содержащееся в BYTE*

у меня в BYTE* содержится значение которое мне нужно присвоить std::string как я могу это сделать? Например что-то вроде

BYTE* str1 = (BYTE*)"anton";

Ответы (1 шт):

Автор решения: Павел Ериков

BYTE это одно и тоже с unsigned char.

То есть задача сводится к тому, чтобы преобразовать unsigned char* в string.

Это можно сделать явно преобразовав unsigned char* str1 к типу char*.

WARNING Строка str1 должна заканчивается нулем ('\0')

Например так:

string str((const char*)str1); //Передать в конструктор
string str = (const char*)str1; //Через оператор присваивания

Или использовать преобразование типов в стиле c++ при помощи функции reinterpret_cast<T>():

string str(reinterpret_cast<const char*>(str1)); //Передать в конструктор
string str = reinterpret_cast<const char*>(str1); //Через оператор присваивания

О преобразовании char* в string на enSO: ссылка

И как дополнение.

Разница между первым и вторым вариантом преобразования: ссылка

→ Ссылка