Как 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: ссылка
И как дополнение.
Разница между первым и вторым вариантом преобразования: ссылка