Копирование массива беззнаковых символов с нулевым символом в конце в std :: string

Если бы массив был с завершающим нулем , это было бы довольно просто:

unsigned char u_array[4] = { 'a', 's', 'd', '\0' };
std::string str = reinterpret_cast<char*>(u_array);
std::cout << "-> " << str << std::endl;

Однако я Интересно, каков наиболее подходящий способ скопировать беззнаковый массив без знака без знака, например, следующий:

unsigned char u_array[4] = { 'a', 's', 'd', 'f' };

в std :: string .

Есть ли способ сделать это без итерации по массиву unsigned char ?

Всем спасибо.

41
задан karlphillip 14 January 2011 в 13:40
поделиться