If the array was null-terminated this would be pretty straight forward:
unsigned char u_array[4] = { \'a\', \'s\', \'d\', \'\\0\' }; std::string str
Well, apparently std::string has a constructor that could be used in this case:
std::string str(reinterpret_cast(u_array), 4);